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();