C# 如何在新线程中调用long方法以保持UI在C中运行#
我有一个WPF应用程序,其中有一个填充了用户的组合框、一个显示所选用户的一些数据的网格和一个调用DoTimeSheetReport()的按钮 DoTimeSheetReport()执行一些工作,然后打开一个包含SSRS报告的新窗口。一切正常,但该方法需要很长时间才能完成,主要是因为报告,这意味着我的UI没有响应。我尝试了几种方法来启动一个新的线程/任务,但是它们都阻塞了UI的线程。我可能做错了什么,但我不知道 为了不阻塞UI,调用长方法的最佳方法是什么 编辑 我更改了代码以隔离耗时的部分C# 如何在新线程中调用long方法以保持UI在C中运行#,c#,wpf,multithreading,user-interface,reporting-services,C#,Wpf,Multithreading,User Interface,Reporting Services,我有一个WPF应用程序,其中有一个填充了用户的组合框、一个显示所选用户的一些数据的网格和一个调用DoTimeSheetReport()的按钮 DoTimeSheetReport()执行一些工作,然后打开一个包含SSRS报告的新窗口。一切正常,但该方法需要很长时间才能完成,主要是因为报告,这意味着我的UI没有响应。我尝试了几种方法来启动一个新的线程/任务,但是它们都阻塞了UI的线程。我可能做错了什么,但我不知道 为了不阻塞UI,调用长方法的最佳方法是什么 编辑 我更改了代码以隔离耗时的部分 rep
reportViewer.SetPageSettings(reportConfiguration.PageSettings);
在这一部分使用了后台工作人员。谢谢你的帮助
@路易斯奎贾达:那就行了,贴一个答案,这样我就可以接受了 简而言之:您需要做的是了解如何使用异步调用
using System.Threading;
new Thread(() =>
{
Thread.CurrentThread.IsBackground = true;
/* run your code here */
Console.WriteLine("Hello, world");
}).Start();
首先,您可以查看您的帖子和/或MSDN文章中的建议链接: