■ async … await 키워드를 사용하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
using System; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; ... private ListBox listBox; private TextBox textBox; ... #region 버튼 클릭시 처리하기 - button_Click(sender, e) /// <summary> /// 버튼 클릭시 처리하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> async private void button_Click(object sender, EventArgs e) { await AddItemAsync(this.textBox.Text, 10); } #endregion #region 항목 비동기 추가하기 - AddItemAsync(message, count) /// <summary> /// 항목 비동기 추가하기 /// </summary> /// <param name="message">메시지</param> /// <param name="count">카운트</param> /// <returns>태스크</returns> private Task AddItemAsync(string message, int count) { return Task.Run(() => { for(int i = 0; i < count; i++) { this.listBox.Items.Add(message + ", " + i.ToString()); Thread.Sleep(500); } }); } #endregion |
■ async … await 키워드를 사용하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
using System; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; ... private ListBox listBox; private TextBox textBox; ... #region 버튼 클릭시 처리하기 - button_Click(sender, e) /// <summary> /// 버튼 클릭시 처리하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> async private void button_Click(object sender, EventArgs e) { await AddItemAsync(this.textBox.Text, 10); } #endregion #region 항목 비동기 추가하기 - AddItemAsync(message, count) /// <summary> /// 항목 비동기 추가하기 /// </summary> /// <param name="message">메시지</param> /// <param name="count">카운트</param> /// <returns>태스크</returns> private Task AddItemAsync(string message, int count) { Action action = delegate() { for(int i = 0; i < count; i++) { this.listBox.Items.Add(message +", " + i.ToString()); Thread.Sleep(500); } }; Task task = new Task(action); task.Start(); return task; } #endregion |
■ async … await 키워드를 사용하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
using System; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; ... private ListBox listBox; private TextBox textBox; ... #region 버튼 클릭시 처리하기 - button_Click(sender, e) /// <summary> /// 버튼 클릭시 처리하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> async private void button_Click(object sender, EventArgs e) { await Task.Run(() => { for(int i = 0; i < 10; i++) { this.listBox.Items.Add(this.textBox.Text + ", " + i.ToString()); Thread.Sleep(500); } }); } #endregion |