2
서버 응용 프로그램을 작성하고 내 코드는 좀 .. 반복 .. 받아 봐지기 시작한다 : 나는 .NET 4.0을 사용하고다른 스레드에서 GUI 컨트롤을 업데이트 할 때 반복을 줄이는 방법은 무엇입니까?
private void AppendLog(string message)
{
if (txtLog.InvokeRequired)
{
txtLog.Invoke(new MethodInvoker(() => txtLog.AppendText(message + Environment.NewLine)));
}
else
{
txtLog.AppendText(message);
}
}
private void AddToClientsListBox(string clientIdentifier)
{
if (listUsers.InvokeRequired)
{
listUsers.Invoke(new MethodInvoker(() => listUsers.Items.Add(clientIdentifier)));
}
else
{
listUsers.Items.Add(clientIdentifier);
}
}
private void RemoveFromClientsListBox(string clientIdentifier)
{
if (listUsers.InvokeRequired)
{
listUsers.Invoke(new MethodInvoker(() => listUsers.Items.Remove(clientIdentifier)));
}
else
{
listUsers.Items.Remove(clientIdentifier);
}
}
. 아직 다른 스레드에서 GUI를 업데이트하는 더 좋은 방법이 있습니까? 그것이 다른 경우 내 서버에서 스레딩을 구현하기 위해 tasks을 사용하고 있습니다.
뿐만 아니라'호출은()'에 필요한 인수를 지정하여 호출 할 수 있습니다, 당신이 이미 당신의 대의원을 불러주세요. 'control.Invoke (action, control); ' –
제프. 나는 그것이 다음 단계라고 말하고 싶다. 나는 단지 리팩토링을하고 있었다. ... –
'control.Invoke (action, control);과'control.Invoke (new MethodInvoker (() => 액션 제어)))); –