c# winform에서 다중 루틴을 사용하여 백엔드에서 데이터 gridview 데이터를 정시 리셋하는 것에 관하여
1860 단어 c#
본인 c#초보자, 최근에 회사에서 요구한 프로그램은 백엔드에서 정해진 시간에 조회하는 데이터를 데이터gridview에 연결해야 합니다. 프로그램에 가사가 발생하지 않고 우호적인 체험을 할 수 있도록 하기 때문에 다른 라인을 만들어서 데이터를 조회하는 데 사용하고 데이터를 데이터gridview에 표시하려고 합니다.프로그램이 완성되었을 때 본 기기에서 코드 디버깅도 문제가 없고 완벽했다. 그러나 실제 운용할 때 데이터gridview의 인터페이스에 문제가 생겼다. 데이터가 없고 큰 빨간 포크가 표시되며 오류가 발생했다.이전에는 컴퓨터 환경의 문제인 줄 알았는데, 나중에야 원인을 찾았는데, 다중 스레드의 사용이 부적절한 문제였다.다음은 동생의 해결 방법입니다. 현재로서는 이 상황을 발견하지 못했습니다.만약 이 방법이 적용되지 않거나 더 좋은 방법이 있다는 것을 발견한 사람이 있다면 알려주십시오. 감사합니다.신들의 지도를 환영합니다!
구현 코드
///
/// ( )
///
private void searchData()
{
//
Thread th = new Thread(new ThreadStart(StartSearchData));
th.IsBackground = true;// , , ,
th.Start();
}
bool IsReflash = false;// while , , true, , false
private delegate void InvokeHandler();//
///
///
///
private void StartSearchData()
{
try
{
while (IsReflash)
{
DataTable dt = new DataTable();
dt = GetInfo.getCLC_SO_Info();
if (this.IsHandleCreated)// , Invoke BeginInvoke
{
this.Invoke(new InvokeHandler(delegate()
{
dgv_Main.DataSource = dt;
}));
}
Thread.Sleep(5000);//
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, " ", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C#Task를 사용하여 비동기식 작업을 수행하는 방법라인이 완성된 후에 이 라인을 다시 시작할 수 없습니다.반대로 조인(Join)만 결합할 수 있습니다 (프로세스가 현재 라인을 막습니다). 임무는 조합할 수 있는 것이다. 연장을 사용하여 그것들을 한데 연결시키는 것이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.