0
我有一些泛型函数在后台线程中运行方法。在正常的线程同步问题之外,这里是否存在任何危险?在另一个线程中运行函数的C#泛型
public static void ThreadRunReturn<TReturn, TArgument>(Func<TArgument, TReturn> func, TArgument arg, bool background = true)
{
Thread th = new Thread(unused => func(arg));
th.IsBackground = background;
th.Start(th);
}
public static void ThreadRunReturn<TReturn, TArgument1, TArgument2>(Func<TArgument1, TArgument2, TReturn> func, TArgument1 arg1, TArgument2 arg2, bool background = true)
{
Thread th = new Thread(unused => func(arg1, arg2));
th.IsBackground = background;
th.Start(th);
}
public static void ThreadRun<TArgument>(Action<TArgument> action, TArgument arg, bool background = true)
{
Thread th = new Thread(unused => action(arg));
th.IsBackground = background;
th.Start(th);
}
public static void ThreadRun<TArgument1, TArgument2>(Action<TArgument1, TArgument2> action, TArgument1 arg1, TArgument2 arg2, bool background = true)
{
Thread th = new Thread(unused => action(arg1, arg2));
th.IsBackground = background;
th.Start(th);
}
一切都需要公开吗? – KingCronus 2012-08-15 14:48:28
是不是使用TPL更容易? 'Task.Factory.StartNew' – 2012-08-15 14:55:50
@ L.B我会研究Task.Factory.StartNew,但快速浏览似乎并不那么简单。我希望能够执行以下操作:MyClass.ThreadRunReturn(RunSShCommand,“reboot”); – Marinara54uc3 2012-08-15 15:07:51