|
|
@ -629,6 +629,25 @@ namespace Apewer |
|
|
|
return thread; |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>在后台线程中执行,指定 Try 将忽略 Action 抛出的异常。</summary>
|
|
|
|
/// <param name="delay">延迟的毫秒数。</param>
|
|
|
|
/// <param name="action">要执行的 Action。</param>
|
|
|
|
/// <param name="try">忽略 Action 抛出的异常。</param>
|
|
|
|
/// <remarks>对返回的 Thread 调用 Abort 可结束线程的执行。</remarks>
|
|
|
|
[MethodImpl(MethodImplOptions.NoInlining)] |
|
|
|
public static Thread InBackground(int delay, Action action, bool @try = false) |
|
|
|
{ |
|
|
|
if (action == null) return null; |
|
|
|
var thread = new Thread(delegate (object v) |
|
|
|
{ |
|
|
|
if (delay > 0) Thread.Sleep(delay); |
|
|
|
Invoke(() => ((Action)v)(), @try); |
|
|
|
}); |
|
|
|
thread.IsBackground = true; |
|
|
|
thread.Start(action); |
|
|
|
return thread; |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>启动线程,在新线程中执行。</summary>
|
|
|
|
/// <param name="action">要执行的 Action。</param>
|
|
|
|
/// <param name="background">设置线程为后台线程。</param>
|
|
|
|