2013-06-17 2 views
-2

twincat 장치와 Windows Ce 6 장치가 있습니다. 기계에서 데이터를 가져 오는 트윈 카운트를 나열하고 있습니다. 데이터를 얻은 후 그림 상자 process.moving 그림 상자, 그림, 이미지 변경 그래픽을 만들고 있습니다 그래서 내 프로그램이 매우 느려서 실시간 datas를 잡을 수 없습니다. 무엇을 할 수 있습니까? 다른 이미지 프로세스 또는 스레드에 대해 Usercontrol을 사용해야합니까? 고마워 나는이 양식을 처리 스레드 또는 MyThread을한다 Thread.Which 스레드에서이 속성을 호출하면 컨트롤 및 그래픽 이동

Bitmap MyImage 
{ 

    get 
    { 
// A Lot of difficult process Drawing Image 
    return Im; 
    } 

} 

Form1에

의 속성이 있습니다

?

+0

'UserControl' 스레드 가서, 도움이되지 않습니다! – Mehran

+0

@Mehran 몇 가지 설명해 주시겠습니까? –

답변

0

UserControls과 동일한 문제가있는 스레드를 사용하지 않고 작업하고있는 다른 자료에서 UI 개의 작업을 분리하는 것이 좋습니다. 즉, 프로그램이 실시간으로 데이터를 가져 오는 데 너무 느리면 두 가지 스레드를 사용하십시오. 하나는 데이터를 가져오고 다른 하나는 드로잉을 위해 UI과 같은 방법으로 처리합니다. UI 스레드는 데이터 스레드에 영향을 미치지 않지만 일부 이미지 처리 라이브러리 나 그래픽을 사용하여 드로잉을 최적화해야합니다. 그래픽 작업을 위해 고안된 더 빠른 기술을 사용하여도 WPF

여기에 C#의 스레드를 시작하는 데 필요한 매우 유용한 자습서가 있습니다.

Multithreaded Programming Using C#

당신이 우리에게 자세한 내용과 우리가 당신에게 도움이 될 수 있습니다 코드를 제공하는 경우에 유의하시기 바랍니다 더 :

+0

@Mahran는하지만 더 많은 질문을 답변에 대한 감사를 :) Form1에 '비트 맵 myimage을의 재산권이 { 이미지 } 그리기 어려운 과정의 { // 많이 얻을} ' Thread.Which 스레드에서이 속성을 호출 할 때이 프로세스를 폼 스레드 또는 MyThread로 만들까요? –

+0

UI 스레드에서이 속성을 호출하면 호출 한 스레드에서 실행 중입니다. UI 스레드에서 실행됩니다. 스레드 간 및 스레드 안전성을 인식하고 때로는 함수를 호출하거나 다른 스레드의 속성으로 인해 프로그램이 중단되는 크로스 스레드가 발생할 수 있습니다! – Mehran

+0

감사합니다 감사합니다 :) –