public static Task Run(Action expression)
#endif
{
Task task = new Task();
Action inline = () =>
{
expression();
lock (taskMutex)
{
tasks.Remove(task);
}
};
task.SetExpression(inline);
#if NETFX_CORE
return System.Threading.Tasks.Task.Run(async () =>
{
inline();
});
#else
task.thread.Start();
lock (taskMutex)
{
tasks.Add(task);
}
return task;
#endif
}