gpt4 book ai didi

wpf - 如何使某些任务更改我的WPF控件

转载 作者:行者123 更新时间:2023-12-03 13:20:37 26 4
gpt4 key购买 nike

我想创建一个执行此操作的WPF应用程序:
该应用程序将有8个任务一起运行。
每个任务都可以将一些字符串添加到主窗口中显示的文本框中。

如何使所有任务同时运行并在主UI线程上运行?

(13/04/13 :)

请参见下面的代码:

private  void RunTasks(int ThreadsNumber)
{

int Ratio = NumbersToCheck / ThreadsNumber;

for (int i = 0; i < ThreadsNumber; i++)
{
Task.Run(() =>
{
int counter = 0;
int low = Ratio * i;
int high = Ratio * (i + 1);

Dispatcher.Invoke(DispatcherPriority.Normal,
(Action)(() =>
{
for (int j = low; j < high; j++)
{
if(IsPrime(j))
MessageList.Items.Add(j);

}
}));
});
}

}

MessageList是一个列表框。为什么在运行此代码时,id看不到添加到此列表框中的最小素数? (3,5,7,11依此类推)。

最佳答案

使用 Dispatcher 从运行异步的异步线程上调用UI线程上的代码:

// The Work to perform on another thread
Task.Run(()=>
{
// long running operation...


// Sets the Text on a Text Control from the Dispatcher
// so it will access the UI from the UI-Thread
Dispatcher.Invoke(DispatcherPriority.Normal,
(Action)(() => { myText.Text = "From other thread!"; }));
});

关于wpf - 如何使某些任务更改我的WPF控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16287010/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com