cancellation

    1熱度

    2回答

    我在嘗試使用Reactive Extensions(Rx)來處理數據流。但是,每個元素的處理可能需要一些時間。爲了中斷處理,我使用了CancellationToken,它可以有效地停止訂閱。 當取消請求時,我該如何優雅地完成當前工作並正確終止而不丟失任何數據? 實施例: var cts = new CancellationTokenSource(); cts.Token.Register(()

    0熱度

    1回答

    由於代碼片段和詳細解釋,這是一個非常長的問題。 TL; DR,下面顯示的宏是否存在問題,這是一個合理的解決方案,如果不是,那麼解決下面提出的問題的最合理的方法是什麼? 我目前正在編寫一個處理POSIX線程的C庫,並且必須能夠乾淨地處理線程取消。特別是,可以由用戶設置爲可取消的線程(PTHREAD_CANCEL_DEFFERED或PTHREAD_CANCEL_ASYNCHRONOUS取消類型)調用庫

    1熱度

    2回答

    我有一個表單,我在其中啓動一個任務來加載內容。如果用戶單擊取消,則當然需要取消該任務。但似乎我做錯了什麼。該表單永遠不會關閉並持續等待任務: public partial class Designer : Form { private CancellationTokenSource _cancellationTokenSource; private Task _loadTas

    0熱度

    1回答

    我對Lua相當陌生,在我的代碼中一個特定的命令一直在導致我一些主要問題。 我一直在試圖取消計時器: currentPuddleDelay = timer.performWithDelay(puddleDelay, createPuddle); ,我顯示的錯誤是: Attempt to index a nil value File: ? stack traceback: ?: in f

    0熱度

    1回答

    承諾在預輸入的情況下,我取消了以前的電話的聯繫人,還沒有回來,一個新的呼叫已經取得,使用下面的代碼: function($http, $window, $q, $timeout){ var suggestions = []; var cancel = $q.defer(); return { getSuggestions : function

    1熱度

    2回答

    我創建了Backgroundworker以在使用不同類提供的一些方法的串行端口上操作。每次發生這些方法的異常時,我想取消一名工作人員。 事實上,我有一些想法如何使用事件做到這一點,但恐怕這不是最佳解決方案或良好做法。在這種情況下,我應該用每種方法開火,這在我看來效率不高。 。 對於離,一個從方法,ReceiveRecord看起來像這樣: public string ReceiveRecord()

    0熱度

    2回答

    我有一系列承諾鏈,需要足夠的時間才能完成。下面是示例鏈設置: myJob1() .then(myJob2) .then(myJob3) .then(myJob4) .then(myJob5) .then(myJob6) .catch(myJobError); 在當該作業正在運行,如果在UI的人認爲取消它的平均時間,怎麼能在任何階段/函數執行它被取消? 什麼是可能的解決方案?

    1熱度

    1回答

    我正在製作Go的控制檯音樂播放器。每當用戶選擇和播放一張專輯,我推出的goroutine到環在播放列表。 playlist := make([]*Media, 0) for _, path := range album.Paths { media, err := NewMediaFromPath(path) // return err playlist = app

    0熱度

    1回答

    我有一個WebClient,我用它來下載文件。 這是我的代碼,其中我有一個ProgressDialog和Web客戶端下載: dialog = new ProgressDialog(mContext); dialog.SetProgressStyle(Android.App.ProgressDialogStyle.Horizontal); dialog.SetCanc

    2熱度

    1回答

    鑑於以下代碼: CancellationTokenSource cts = new CancellationTokenSource(); ManualResetEventSlim mre = new ManualResetEventSlim(); 和這兩個線程執行併發: mre.Wait(cts.Token); cts.Cancel(); mre.Set(); 是保證拋出Opera