public void TransferAsyncProgress(Stream targetDataStream, nTransferDirection direction, FileOperationProgressChanged progressCallback, object progressContext) { var ctx = new BaseFileEntryDataTransferAsyncContext { ProgressCallback = progressCallback, ProgressContext = progressContext }; Transfer(targetDataStream, direction, FileOperationProgressChangedAsyncHandler, ctx); }
public void TransferAsyncProgress(Stream targetDataStream, nTransferDirection direction, FileOperationProgressChanged progressCallback, object progressContext) { var ctx = new BaseFileEntryDataTransferAsyncContext { ProgressCallback = progressCallback, ProgressContext = progressContext }; Transfer(targetDataStream, direction, FileOperationProgressChangedAsyncHandler, ctx); }
private void FileOperationProgressChangedAsyncHandler(object sender, FileDataTransferEventArgs e) { BaseFileEntryDataTransferAsyncContext ctx = e.CustomnContext as BaseFileEntryDataTransferAsyncContext; // define the thread ThreadPool.QueueUserWorkItem((object state) => { // change the transferevent args FileDataTransferEventArgs eAsync = e.Clone() as FileDataTransferEventArgs; ctx.ProgressCallback(sender, eAsync); }); }