public SleepData(Microthread thread, long sec) { Thread = thread; _time = DateTime.Now.Ticks + sec*10000000; }
/// <summary> /// 해당 index에 맞는 Worker Thread에서 Microthread를 시작하는 메소드 /// </summary> /// <param name="index">작업구분을 위한 index</param> /// <param name="microthread">시작할 Microthread</param> public static void RunMicrothread(int index, Microthread microthread) { _schedulers[index%_schedulers.Length].RunMicrothread(microthread); }
public Microthread(Func<IEnumerator<IYield>> func, Microthread parent = null) { _func = func; _parent = parent; }
/// <summary> /// Microthread를 시작하는 메소드 /// </summary> /// <param name="microthread">시작할 Microthread</param> public void RunMicrothread(Microthread microthread) { QueueWorkItem(() => microthread.Run(this)); }