양식이 있고 제어 할 수 없습니다. 데이터베이스에서 컨트롤을 가져 와서 프로젝트가 느려서 스레딩을 사용할 수 있다고 생각하지만 오류가 발생합니다.다중 스레드 오류
void Form_Load(object sender,EventArgs e)
{
SqlDataAdapter adap=new SqlDataAdapter("Select * from MyControls");
DataTable dt=new DataTable();
adap.Fiil(dt);
foreach(DataRow dr in dt.Rows)
{
ThreadStart ts=delegate{ Sample1(dr) };
Thread th=new Thread(ts);
th.start();
}
}
public void Sample1(DataRow dr)
{
this.Invoke(new AddControlsDelegate(AddControls),new object[] {dr });
}
public void AddControls(DataRow dr)
{
TextBox tx=new TextBox();
tx.Name=dr["Id"].ToString();
this.Controls.Add(tx);
}
public delegate void AddControlsDelegate(DataRow dr);
나는 그것이 두 번 3 시간, 4 시간
내 잘못을 시간을 같은 컨트롤을 추가 work.It 해달라고 나누었다이 코드와 함께 노력 해요? 당신은 루프 변수를 통해 닫는 감사
그것을 lot.But 컨트롤은 "ID"asceding 은 때로는 아마도 당신은 SQL을 변경해야합니다 – YardimaIhtiyaciOlan
을 asceding 오지 와서해야하고 Id'하여 'ORDER를 포함 작업 덕분에 ... – Yahia
@YardimaIhtiyaciOlan 다음에 추가 SQL에서 순서를 지정할 때 스레드가 실제로 실행되는 시점을 제어 할 수는 없으며 다른 접근 방식이 필요하다는 것을 알기 위해 순서가 보장되지 않습니다. 또한 현재 코드가별로 중요하지 않습니다. 다중 스레드를 사용하는 오버 헤드는 실제로하는 일에 가치가 없습니다. – BrokenGlass