public static TaskInfo StartNewNow(ThreadSStart Funk) { TaskInfo threadInfo = new TaskInfo(Funk); threadInfo.StartNow(); return(threadInfo); }
public object _out; // пока не используется public TaskInfo(ThreadSStart Funk) { _out = null; is_start = false; is_complete = false; to_lock = new object(); taskContainer = new TaskContainer(Funk, this); }
public TaskContainer(ParameterizedThreadSStart parameterizedThreadSStart, object o, TaskInfo threadInfo = null) { this.parameterizedThreadSStart = parameterizedThreadSStart; this.o = o; this.taskInfo = threadInfo; this.threadSStart = null; this.is_void_func = false; }
public TaskContainer(ThreadSStart threadSStart, TaskInfo threadInfo = null) { this.threadSStart = threadSStart; this.taskInfo = threadInfo; parameterizedThreadSStart = null; o = null; is_void_func = true; }
public static IEnumerable WaitCompleteFunction(ThreadSStart Func) { TaskInfo taskInfo = new TaskInfo(Func); while (!taskInfo.is_complete) { yield return(null); } }
public WorkThread(int id) { manualReset = new ManualResetEventSlim(false); StartFunc = new ThreadSStart(ThreadStart); need_stop_thread = false; this.id = id; thread = new Thread(new ThreadStart(ThreadStart)); thread.IsBackground = true; thread.Start(); }