static void Main(string[] args)
    {
        SearchTask         _searchTask = new SearchTask();
        ThreadStartCommand _command    = new ThreadStartCommand(_searchTask);
        Thread             _t1         = new Thread(_command);

        _t1.Start();
    }
        static void Main(string[] args)
        {
            EmailTask _emailTask = new EmailTask();
            ThreadStartCommand _emailTaskCommand = new ThreadStartCommand(_emailTask, "Send");
            Thread _t1 = new Thread(_emailTaskCommand);
            _t1.Start();

            SMSTask _smsTask = new SMSTask();
            ThreadStartCommand _smsTaskCommand = new ThreadStartCommand(_smsTask,"Send");
            Thread _t2 = new Thread(_smsTaskCommand);
            _t2.Start();
        }
 public Thread(ThreadStartCommand startCommand)
 {
     this._startCommand = startCommand;
 }
 public Thread(ThreadStartCommand command)
 {
     this._command = command;
 }