c# - 如何在新线程中调用长方法以保持 UI 在 C# 中运行

标签 c# wpf multithreading user-interface reporting-services

<分区>

我有一个 WPF 应用程序,其中包含一个包含用户的组合框、一个显示所选用户的一些数据的网格和一个调用 DoTimeSheetReport() 的按钮。

DoTimeSheetReport() 会做一些工作,然后打开一个包含 SSRS 报告的新窗口。一切正常,但该方法需要很长时间才能完成,主要是因为报告,这意味着我的 UI 变得无响应。我尝试了几种方法来启动新线程/任务,但它们都阻塞了 UI 的线程。我可能做错了什么,但我不知道。

为了不阻塞 UI,调用长方法的最佳方法是什么?

编辑

我更改了我的代码以隔离耗时的部分。

reportViewer.SetPageSettings(reportConfiguration.PageSettings);

在这部分使用 backgroundWorker 做到了。感谢您的帮助。

@LuisQuijada:成功了,发布一个答案,这样我就可以接受了。

最佳答案

using System.Threading;
new Thread(() => 
{
    Thread.CurrentThread.IsBackground = true; 
    /* run your code here */ 
    Console.WriteLine("Hello, world"); 
}).Start();

关于c# - 如何在新线程中调用长方法以保持 UI 在 C# 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14761687/

相关文章:

c# - 使用 XMLDocument 对象解析在其值中嵌入双引号的 xml 属性

c# - 了解 Java 的 "final"以转换为 C#

c# - Entity Framework 4 中的 DataGrid 绑定(bind)不更新

Java服务器结构

c# - 使用反射分配 Func<Product, object> 属性的值

wpf - 我可以添加/减去绑定(bind)到元素属性的值吗?

c# - ProgressBar 2种颜色

wpf - Caliburn.Micro 在 WPF 中拖放文件

C# 字典,键是字符串,值是计数器。近似算法和线程安全

python-3.x - python并行读取csv文件并连接数据框