2013-05-17 3 views
0

У меня есть класс хоста, который запускает экземпляр другого класса в новом потоке, как так:Класс недвижимости внутри класса на отдельный поток

Я ссылка в этой статье MSDN в соответствии с которым, Class2.P1 НЕ должен быть пустым , ССЫЛКА: http://msdn.microsoft.com/en-us/library/system.threading.threadstart.aspx

Я пропустил что-нибудь очевидное?

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading; 
using System.Threading.Tasks; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      new Host().DoWork(); 
     } 
    } 
    public class Host { 

     Class2Parent c = new Class2(); 
     Thread t; 
     public void DoWork() { 
     c.P1 = new Class3(); 
     t = new Thread(c.Start); 
     t.Start(); 
     } 
    } 

    public class Class2Parent { 
     public Class3 P1 = null; 
     public virtual void Start() {} 
    } 

    public class Class2 : Class2Parent { 
     public Class3 P1 = null;   
     public override void Start() { 
     Console.WriteLine(P1 == null); // this is always true 
     } 
    } 

    public class Class3 
    {} 
} 
+0

Я не знаю, если вы что-то отсутствует, но методы вашего класса хоста отсутствует –

+0

Что такое ваш фактический код? Вы не начинаете нить t вообще. – JeffRSon

+0

Вы не зашли на начало страницы –

ответ

0

Вы можете попытаться создать новый поток, используя переменный таймер, как и что:

private Timer m_RequestTimer; 

public void Begin() 
{ 
      // Timer check 
      if (m_RequestTimer != null) 
      { 
       m_RequestTimer.Change(Timeout.Infinite, Timeout.Infinite); 
       m_RequestTimer.Dispose(); 
       m_RequestTimer = null; 
      } 
m_RequestTimer = new System.Threading.Timer(obj => { c.Start(); }, null, 250, System.Threading.Timeout.Infinite); 
     } 
} 

где m_RequestTimer является атрибутом вашего класса хоста и начать метод Host.

Я надеюсь, что это поможет вам =)

+0

Как это связано с вопросом? – JeffRSon

+0

В своем исходном посте поток не запускался, поэтому я показываю ему способ начать тему. –

Смежные вопросы