C# 多线程/异步:在UI可交互的同时在后台运行任务
- 论坛
- C# 多线程/异步:在UI可交互的同时在后台运行任务
12 浏览
C# 多线程/异步:在UI可交互的同时在后台运行任务
在研究了Async/Await和Threading之后,我仍然不确定如何正确地应用它们到我的情况中。无论我尝试哪种变化,我的UI仍然会卡住,因为我似乎没有异步调用我的期望函数,此外,我可能确实需要使用线程来解决我的问题。
我想要做的事情:我有一个WPF应用程序,上面有一个按钮,我希望该按钮能够启动一个操作,同时仍然允许通过UI或其他方式与程序进行交互。一旦满足了在该函数之外确定的条件,该函数应该结束。对我来说,这听起来相当标准,但我有一种感觉我对某些东西有误解,并且我实现得不正确。
我目前的做法:
private async void start_button_Click(object sender, RoutedEventArgs e) { await StaticClass.MyFunction(); } private void stop_button_Click(object sender, RoutedEventArgs e) { StaticClass.stopFlag = true; } public static TaskmyFunction() { //一些操作 while(StaticClass.stopFlag == false) //做一些事情 //一些操作 return Task.FromResult(1) //我知道这样做是不好的,这也是我询问的原因之一 }
我希望能得到一些指导,看看我是否以正确的方式进行了处理,并了解我做错了什么。