| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 | using System;using System.Collections.Generic;using System.Text;using System.Threading;using System.Threading.Tasks;namespace WCS.Data{    public class ThreadHelper    {        //static CancellationTokenSource _cancelSource01 = new CancellationTokenSource();        //static CancellationTokenSource _cancelSource02 = new CancellationTokenSource();        public static void TaskThread(Action methodName, int millisecondsTimeout = 0)        {            var task = Task.Factory.StartNew(() =>            {                methodName();            });            if (millisecondsTimeout > 0)            {                task.Wait(millisecondsTimeout);            }        }        public static void TaskThread<T>(Action<T> methodName, T param, int millisecondsTimeout = 0)        {            var task = Task.Factory.StartNew(() =>            {                methodName(param);            });            if (millisecondsTimeout > 0)            {                task.Wait(millisecondsTimeout);            }        }        public static object TaskThread(Func<object> methodName)        {            var result = Task.Factory.StartNew(() =>            {                return methodName();            });            return result;        }        public static V TaskThread<T, V>(Func<T, V> methodName, T param, int millisecondsTimeout = 0)        {            var result = Task.Factory.StartNew(() =>            {                return methodName(param);            });            if (millisecondsTimeout > 0)            {                if (result.Wait(millisecondsTimeout))                {                    return result.Result;                }            }            return default(V);        }    }}
 |