private static IntPtr GetCompletionCallbackPointer() { OnCompletedCallback callback = MyCompletedCallbackImplementation; GCHandle.Alloc(callback); // keep alive for lifetime of application return(Marshal.GetFunctionPointerForDelegate(callback)); }
internal static void Download(string path, OnProgressCallback onProgress, OnCompletedCallback onCompleted) { basePath = path; onProgressCallback = onProgress; onCompletedCallback = onCompleted; webClient.DownloadProgressChanged += DownloadProgressCallback; webClient.DownloadFileCompleted += DownloadCompletedCallback; webClient.DownloadFileAsync(new Uri("https://srec-1251216093.file.myqcloud.com/ffmpeg.zip"), basePath + "/ffmpeg.zip"); }
public void UnsafeOnCompleted(OnCompletedCallback callback, IntPtr state) { _task.GetAwaiter().UnsafeOnCompleted(() => callback(state)); }