void Init(string name, RunnerData runnerData) { _name = name; _runnerData = runnerData; #if !NETFX_CORE //threadpool doesn't work well with Unity apparently //it seems to choke when too meany threads are started new Thread(() => runnerData.RunCoroutineFiber()) { IsBackground = true }.Start(); #else Task.Factory.StartNew(() => runnerData.RunCoroutineFiber(), TaskCreationOptions.LongRunning); #endif }
public MultiThreadRunner(string name, bool relaxed = true, int intervalInMs = 0) { _name = name; var runnerData = new RunnerData(relaxed, intervalInMs, name); _runnerData = runnerData; #if !NETFX_CORE || NET_STANDARD_2_0 || NETSTANDARD2_0 //threadpool doesn't work well with Unity apparently //it seems to choke when too meany threads are started var thread = new Thread(() => runnerData.RunCoroutineFiber()) { IsBackground = true }; thread.Start(); #else var thread = new Task(() => { _name = name; RunCoroutineFiber(ref runnerData); }, TaskCreationOptions.LongRunning); thread.Start(); #endif }