c# - 在 Parallel.For 完成作业后引发事件

标签 c# wpf multithreading events

按下按钮后调用以下函数。

Task.Factory.StartNew(() => 
{ 
    Parallel.For(0, cyclesCount, i => DoWork(i));

    if (OnJobCompleted != null)
        OnJobCompleted(this, EventArgs.Empty);                
});

代码中还有

void ladder_OnJobCompleted(object sender, EventArgs args)
{
    txbDebug.Text = "completed";
}

我知道

txbDebug.Text = "completed";

必须被调用,因为我在不同的线程上引发事件。但我不知道如何调用它。此事件位于 wpf 窗体中

最佳答案

使用Dispatcher

txbDebug.Dispatcher.Invoke(new Action(() =>
{
    txbDebug.Text = "completed";
}));

关于c# - 在 Parallel.For 完成作业后引发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7378381/

相关文章:

wpf - MediaTimeline 中的绑定(bind)源

android - Realm 模型从其他线程更新,但应该通知适配器

c# - 如何从linq转换对象

c# - 在传递命令参数时绑定(bind)到代码中的命令

c# - 使用 NT AUTHORITY\SYSTEM 而不是登录用户的 Windows 安装程序

c# - 如何为带有图像的按钮提供访问键。?如果我们按 ALT + S 则无法触发点击事件

c# - wpf中的DialogResult问题

c# - 如何读取 txt 文件并将其显示为控制台应用程序中的表格?

java - 当我从同步调用未同步的方法时,会发生什么?

java - Jprogressbar 不工作