C#-处理多种方法及其完成的最佳方式
我有一个应用程序,它有几种方法可以检查计算机上的各种错误。现在我正在调用表单的加载事件方法,但我有点想通过更新标签文本来显示程序正在做什么,比如progressbar。它应该按顺序从一种方法转到另一种方法C#-处理多种方法及其完成的最佳方式,c#,.net,C#,.net,我有一个应用程序,它有几种方法可以检查计算机上的各种错误。现在我正在调用表单的加载事件方法,但我有点想通过更新标签文本来显示程序正在做什么,比如progressbar。它应该按顺序从一种方法转到另一种方法 然后我还想检查一下是否一切都顺利进行。我应该为此研究线程任务吗?就像为每个方法启动任务一样,如果任务失败则停止任务?我建议创建以下类: WorkstationCheckBase-应为所有检查的基类 WorkstationCheckRunner-获取所有检查和汇总的列表 每个工作站检查库的结果
然后我还想检查一下是否一切都顺利进行。我应该为此研究线程任务吗?就像为每个方法启动任务一样,如果任务失败则停止任务?我建议创建以下类:
-应为所有检查的基类WorkstationCheckBase
-获取所有检查和汇总的列表 每个WorkstationCheckRunner
工作站检查库的结果
现在,第二个问题将在UI上显示一些信息(我的假设是您使用WinForm)。为此,您需要一个后台任务,并经常更新UI。您可以使用
Backgroundworker
类来实现这一点 简短回答:不,不要使用线程-
长答案:视情况而定!
当您开始使用线程时,您将开始面临大量其他与并发相关的问题,如果您只想显示正在发生的事情的标签,我不建议您使用线程
因为我没有代码可以看,所以我只能给你建议如何解决你的问题(没有线程)。最简单的方法是:
public void CheckErrors()
{
string errorText = string.Empty;
if (ErrorOneHasOccured(out errorText))
{
ErrorLabel += errorText;
}
errorText = string.Empty;
if (ErrorTwoHasOccured(out errorText))
{
ErrorLabel += errorText;
}
}
private bool ErrorOneHasOccured(out string errorText)
{
bool errorHasOccured = false;
errorText = string.Empty;
// DO error checking somehting
if (errorHasOccured)
{
errorText = "An error description";
return true;
}
return false;
}
其中:
- ErrorLabel是要显示的错误文本的字符串属性李>
- ErrorOneHasOccursed是使用“Try”模式进行错误检查的示例方法
我认为这是最简单的方法,但很明显,您可以根据需要什么以及为什么需要它来进一步设计它。为什么不试试呢?每件事都有优点和缺点,试试看会发生什么事。你使用的是什么版本的.Net?async/await可能会有帮助。我不认为这篇文章太宽泛,我的2美分。