Programming/C#
C# delegate
분노의블로그
2024. 5. 28. 09:39
반응형
private delegate void UpdateText(Control ctrl, string text);
public void AsyncDisplayText(Control ctrl, string text)
{
if (ctrl.InvokeRequired)
{
ctrl.Invoke(new UpdateText(AsyncDisplayText), new object[] { ctrl, text });
}
else
{
if (ctrl.AccessibilityObject.Role == AccessibleRole.List)
{
ListBox li = ctrl as ListBox;
li.Items.Insert(0, DateTime.Now.ToString("[yyyy-MM-dd HH:mm:ss] ") + text);
if (li.Items.Count >= 100)
li.Items.Clear();
}
else
ctrl.Text = text;
}
}
//사용법
private void button4_Click(object sender, EventArgs e)
{
AsyncDisplayText(listBox1, "A");
AsyncDisplayText(label1, "B");
}
반응형