2013-08-23 3 views
0

이해할 때 처음으로 멀티 스레딩을 사용하고자합니다. 두 가지 법칙이 있습니다. - 스레드는 void로만 사용할 수 있습니다. - 스레드를 사용하여 창 형식의 내용을 변경할 수 없습니다 (대리자를 사용하지 않는 한) .데이터 테이블을 반환하는 void를 만드는 방법은 무엇입니까?

그래서 나는이 규칙과 관련하여 내 매크로 코드, 여기 내 코드입니다 :

public void exec_RT(string tickername, bool isSubIndex) 
{ 
    DataTable RT_dt = Price_dt(tickrname, isSubIndex); 
    Infragistics.Win.UltraWinChart.UltraChart toplot = new Infragistics.Win.UltraWinChart.UltraChart(); 
    toplot = forms.Real_timeAlpha; 
    configgraph(RT_dt, toplot); 
} 

내 문제 함수가이 데이터 테이블 반환 Price_dt이다 :

public DataTable Price_dt(string tickername, bool isSubIndex) 
{ 
    DoMyThing(); 
    return real_time; 
} 

그래서 제 질문은 어떻게 void로 데이터 테이블을 반환 할 수 있습니까?

감사합니다.

+1

멀티 스레딩에 대해서는 잘 모릅니다 만 매개 변수를 사용하여이 작업을 수행 할 수 있습니다. –

+0

'스레드는 void's 와만 사용할 수 있습니다 - 사실이 아닙니다. 이를 위해 TPL을 살펴보십시오. –

+1

TPL'Task'와'Task '클래스를 사용하십시오. –

답변

0

데이터 테이블을 저장하는 데 클래스 멤버를 사용할 수 있습니다.

public DataTable Price_dt(string tickername, bool isSubIndex) 
{ 
    DoMyThing(); 
    this.setDT(real_time); 
} 

나는 테이블 (따라서 함수)을 설정하기 위해 호출을 사용해야한다고 확신한다.

당신은 수업의 다른 모든 부분에서 "저장된"테이블을 들려 줄 수 있습니다.

희망이

0

당신은 그냥 테이블에 방법 및 작업에 DataTable를 통과 할 수 있습니다. DataTable은 참조 유형이므로 모든 수정 사항은 두 변수 참조 (원래 변수와 내부 Price_dt의 참조)를 마녀 원본 개체에 있습니다.

귀하의 방법이

public DataTable Price_dt(string tickername, bool isSubIndex) 
{ 
    DoMyThing(); 
    return real_time; 
} 

에서 갈 것이

public void Price_dt(DataTable yourDataTable, string tickername, bool isSubIndex) 
{ 
    //modify yourDataTable here 
    DoMyThing(); 
} 
+0

'real_time '을 반환 할 수 없습니다.'yourDataTable = real_time'을해야합니다 ('real_time' 테이블입니다 ... 분명하지 않습니다 (나를 위해) – Alex

+0

@Alex 물론'return' 문을 제거하는 것을 잊어 버렸습니다. 데이터 테이블은 반환 할 필요없이 메서드 외부에서 수정됩니다. 이제 –

+1

괜찮습니다;) – Alex

0

당신이 globalTable을

public void exec_RT(string tickername, bool isSubIndex) 
    { 
     DataTable RT_dt = Price_dt(tickrname, isSubIndex); 
     Infragistics.Win.UltraWinChart.UltraChart toplot = new Infragistics.Win.UltraWinChart.UltraChart(); 
     toplot = forms.Real_timeAlpha; 
     //global variable of the type DataTable 
     globalTable = RT_dt; 
     configgraph(RT_dt, toplot); 
    } 

에서의 DataTable을 저장하는 전역 변수를 사용하여 사용을 시도 할 수 있습니다 나중에 필요할 수도 있습니다.

관련 문제