我正在试图弄清楚当我正在处理的程序返回void方法时如何确定最佳实践。基本上,程序调用第三方网格告诉它将内容保存到Excel工作表。保存网格的方法是void方法grid.SaveExcel(string filename, ...)
。我认为它需要使用await
和async
命令,但在多个地方读过这不是最佳做法。我很好奇你将如何正确地做到这一点,因为我是await
,async
,Lamda,Invoke,Action
,Task
,{delegate
{1}} C#中的内容,并认为我只是让自己感到困惑。我基本上知道如何打开SQL连接,填充网格,处理按钮事件处理程序,构建基本类等(非常基本的东西)。
我基本上想要调用grid.SaveExcel
方法,然后在等待保存网格完成时更新进度条。一旦完成,我想继续下几行代码。有人可以帮我指出正确的方向并向我展示一些代码来尝试实现这一目标吗?提前谢谢!
答案 0 :(得分:0)
您可以在BackgroundWorker上调用您的功能。 https://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker(v=vs.110).aspx
此类将在完成时自动引发事件,并允许您在执行期间报告进度,这也将引发对象调用线程上的事件。这是设置一个的过程: https://www.dotnetperls.com/backgroundworker
所有这一切都假设您确实需要此过程是异步的。如果您不这样做,您只需调用您的保存,然后立即使用您想要的任何保存后功能。如果保存时间少于200毫秒,那么最好只使用UI内联它。