Elight.Utility/Threads/BackgroundWorkerEx.cs
(开头部分) 1KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Elight.Utility.Threads
{
/// <summary>
/// 封装 BackgroundWorker
/// 建议用BackWork
/// </summary>
public class BackgroundWorkerEx
{
/// <summary>
/// 执行
/// 例:BackWork.Run(() => { }, () => { }, (ex) => { });
/// </summary>
/// <param name="doWork">DoWork</param>
/// <param name="workCompleted">RunWorkerCompleted</param>
/// <param name="errorAction">错误处理</param>
public static BackgroundWorker Run(Action doWork, Action workCompleted = null, Action<Exception> errorAction = null)
{
bool isDoWorkError = false;
Exception doWorkException = null;
BackgroundWorker worker = new BackgroundWorker();
worker.DoWork += (s, e) =>
{
try
{
doWork();
}
catch (Exception ex)
{
isDoWorkError = true;
doWorkException = ex;
Console.WriteLine(ex.Message);
}
};
worker.RunWorkerCompleted += (s, e) =>
{
if (!isDoWorkError)
{
try
{
if (workCompleted != null) workCompleted();
}
catch (Exception ex)
{
if (errorAction != null) errorAction(ex);
Console.WriteLine(ex.Message);
}
}
else
{
if (errorAction != null) errorAction(doWorkException);
}
};
worker.RunWorkerAsync();
后面还有 4 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。