task-parallel-library

    5熱度

    1回答

    我有以下場景/需求: 我有兩個任務,任務A和任務B,它們都返回相同類型的數據。 如果任務A在完成時在其結果中有數據,則需要返回任務A的結果 - 否則我將返回任務B的結果。 我試圖將性能優化爲平行度,我不確定是否有比我所做的更好的方法。這看起來像很多代碼來做我想做的事情。 var firstSuccessfulTask = await Task.WhenAny(taskA, taskB); if

    1熱度

    2回答

    我們有一個WinForm應用程序,它具有所有其他窗體繼承的基本窗體。 在基礎窗體上有一個Delete按鈕,Delete按鈕調用一個名爲DeleteData的虛擬bool方法。 public virtual void DeleteButton_Click(object sender, EventArgs e) { if (DeleteData()) { // run

    0熱度

    1回答

    我使用TPL很多,並有大量數據流管道結構。 作爲管道網絡的一部分,我想將一些數據寫入azure blob存儲。我們有很多數據,因此我們有4存儲帳戶,我們希望在它們之間均勻分配數據。 希望繼續使用數據流管道模式,因此我想實現一個SourceBlock,如果我將它鏈接到幾個目標模塊,它將使用循環法將消息發送給它們。 BufferBlock不夠好,因爲他正在將消息發送到接受它的第一個塊,並假設所有目標塊

    3熱度

    1回答

    我經常使用XML文檔來記錄我的類,方法和屬性,但看看從微軟這個方法: 用法?這是什麼魔法?人們如何模仿這種巫術? 源代碼中沒有這樣的東西,我檢查(.Net 4.5)。也沒有xmldoc標籤,它不應該存在,但它顯示在工具提示中。 我注意到了一段時間,但還沒有時間去調查,所以現在我已經浪費了至少一小時的時間,試圖找出它的結果。 這是一件好事,因爲它出現在工具提示中。我們確實有<example>標籤,但

    2熱度

    1回答

    無法理解一本書中來自apress的示例,它講述了TPL中帶有任務構造的threadlocal的濫用案例。 爲什麼預期的結果不是10000呢? 任何人都可以給出一個更詳細的解釋下面的程序的程序流,其中行立即執行和一些行異步的時間?執行的順序和順序? using System; using System.Threading; using System.Threading.Tasks; name

    1熱度

    1回答

    我想將常規for循環轉換爲Parallel.For循環。 這個 - for (int i = 0; i < bitmapImage.Width; i++) { for (int x = 0; x < bitmapImage.Height; x++) { System.Drawing.Color oc = bitmapImage.GetPixel(i, x);

    1熱度

    1回答

    我正在使用Parallel.For循環來處理一些圖像。當我嘗試保存圖像,有時我得到了GDI發生exception- 一般性錯誤+ 一些圖像得到保存,然後保存一些文件後,該異常來隨機。 我試圖分配原來的位圖圖像對象到不同的位圖圖像,然後將其保存 使用Monitor.Enter保存文件 下面之間進行同步嘗試是我的代碼 - Parallel.For(0, 14, cnt => { using

    1熱度

    1回答

    Tpl Sample Click here to download 嗨, 我想實現我的項目中第三方物流。我使用Web客戶端創建了5個並行HTTP調用。 我想實現的是什麼。 如果5個並行呼叫中的任何一個返回包含「First」的字符串,則清除其餘呼叫並繼續呼叫返回「First」。 我曾嘗試: 我已附加上述示例代碼。在那裏我使用了Predicate函數。 async Task<T> WhenAny<T>

    4熱度

    1回答

    我有幾種方法需要某種互聯網連接。如果連接失敗,我想在失敗之前重試該方法一段時間。由於應用程序可以在等待成功響應的同時繼續運行,我希望異步執行此操作。 我使用Polly (5.3.1)來實現異步重試邏輯,利用Tasks。 我在禁用Wi-Fi的情況下啓動進程並在重試窗口中啓用進程來模擬斷開連接。我期待在再次啓用我的連接後,重試時方法會成功,我所看到的是該方法繼續拋出HttpRequestExcepti

    -1熱度

    1回答

    我讀過,如果foreach非常簡單,我得到的使用並行foreach的開銷不值得。所以我有一個簡單的WPF應用程序來做一些測試。我有這個代碼: //Parallel.Foreach txtLog.Text = txtLog.Text + "\r\n\r\n\r\nSe inicia el Parallel.Foreach a " + DateTime.Now; miSw.Restart();