이더넷 케이블을 통해 패킷을 캡처하는 GUI를 개발했습니다. 이 목적을 위해 별도의 스레드에서 각 함수를 실행하고 3 별도의 함수가 있습니다.실행 중 GUI가 멈춤
1) public void Capture_Click(object sender, EventArgs e) //packet capturing
2) public static void PacketHandler(Packet packet) // storing received packets and showing in dataGrid
3) public void dataGridView1_CellContentClick_1(object sender, DataGridViewCellEventArgs e) // I have Kept a button on each row to get packet details in more detail.
문제 : 거기에 아무런 문제가 없지만 곧 패킷으로 GUI를 오는 지금은 데이터 그리드에 상세 버튼을 클릭 할 수없는 나는 정지 중지하는 것이 패킷이오고있다합니다.
은 가능한 해결책을 제안합니까?
이러한 함수가 개별 스레드에서 얼마나 많이 실행되는지는 분명하지 않습니다. 질문에 대한 충분한 코드를 제공하지 않았습니다. 또한 세 가지 모든 스레드에서 UI 작업을 수행하는 방법이 명확하지 않습니다. –
@DavidHeffernan public Thread StartTheThread (object sender, EventArgs e) { var t = new Thread (() => Capture_Click (sender, e))를 사용하여 각 함수에 대해 새 스레드를 만듭니다. t.Start(); return t; } –
이상하게 보이지는 않지만 의견에 쓰여진 제한된 발췌 부분을 제공 할 수있는 것은 거의 없습니다. –