모노 2.10.8.1 프레임 워크를 사용하여 하나의 작은 GUI 독립 실행 형 응용 프로그램을 개발하고 있습니다.모노 프레임 워크에서 Thread.Abort() 함수가 작동하지 않습니다.
나는 하나의 바탕 화면 GUI 응용 프로그램을 만들었습니다. 백그라운드에서 일부 작업을 수행하는 데 사용할 수있는 스레드를 만든 다음 작업을 완료 한 후 호출 스레드를 중단했습니다.
Abort() 함수가 아무런 문제없이 Windows에서 잘 작동하지만 Linux에서 작동하지 못했습니다.
Thread t1 = new Thread(Linux_Thread);
t1.IsBackground = true;
t1.Start();
//Do some operation in some other function.
Console.WriteLine("Linux thread :: " + t1.ThreadState);
t1.Abort();
Console.WriteLine("Linux thread After Abort :: " + t1.ThreadState);
SO, 리눅스에서 위 프로그램의 출력은 다음입니다 :
Linux thread :: Background
Linux thread After Abort :: Background, AbortRequested
동안 창에서, 위의 프로그램의 출력은 다음과 같습니다 : 그래서
Linux thread :: Background
Linux thread After Abort :: Stopped
, Abort() 함수가 Windows 플랫폼에서 작동 할 때 모노 프레임 워크에서 작동하지 않는 것처럼 보입니다.
그런 다음 내 응용 프로그램은 스레드 문제를 중단하고 응용 프로그램이 정지 상태가되어 잘못된 방식으로 작동합니다.
누구든지이 문제에 대한 아이디어가 있거나이 유형의 문제에 직면 한 사람이 있습니까?
실행중인 스레드를 닫는 다른 방법은 무엇입니까?
최대한 빨리 답변을 알려 주시기 바랍니다.
모노 2.10은 오래된 것입니다. 이미 모노 3.2.x – knocte
@knocte로 테스트하십시오 : 우분투 12.04를 사용하고 있으며 "http://www.go-mono.com/mono-downloads/download.html"사이트에서 mono 3.2를 보았습니다. X는 MAC OS, Windows 및 Open Suse를위한 것이지 다른 것들은 3.2.X를 지원하고 있습니까? –
@knocte, mono 3.2.X가 다른 Linux 플랫폼에서 지원된다는 것을 알려주십시오. Open Suse를 제외하고 –