728x90
반응형
728x170
▶ MainForm.cs
using System;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TestProject
{
/// <summary>
/// 메인 폼
/// </summary>
public partial class MainForm : Form
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 생성자 - MainForm()
/// <summary>
/// 생성자
/// </summary>
public MainForm()
{
InitializeComponent();
this.testButton.Click += testButton_Click;
}
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Private
//////////////////////////////////////////////////////////////////////////////// Event
#region 테스트 버튼 클릭시 처리하기 - testButton_Click(sender, e)
/// <summary>
/// 테스트 버튼 클릭시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void testButton_Click(object sender, EventArgs e)
{
this.testButton.Enabled = false;
this.resultTextBox.Text = string.Empty;
ProcessTest();
}
#endregion
//////////////////////////////////////////////////////////////////////////////// Function
#region 테스트 처리하기 - ProcessTest()
/// <summary>
/// 테스트 처리하기
/// </summary>
private async void ProcessTest()
{
Task<string> task = Task<string>.Run(() =>
{
for(int i = 0; i < 101; i++)
{
System.Threading.Thread.Sleep(10);
Invoke(new MethodInvoker(() =>
{
this.progressBar.Value = i;
this.progressBar.Update();
}));
}
return DateTime.Now.Millisecond.ToString();
});
string result = await task;
this.resultTextBox.Text = result;
this.testButton.Enabled = true;
}
#endregion
}
}
728x90
반응형
그리드형(광고전용)
'C# > TPL' 카테고리의 다른 글
[C#/TPL] Parallel 클래스 : For 정적 메소드 사용하기 (0) | 2019.07.13 |
---|---|
[C#/TPL] Parallel 클래스 : ForEach 정적 메소드 사용하기 (0) | 2019.06.30 |
[C#/TPL] Parallel 클래스 : ForEach 정적 메소드를 사용해 디렉토리 크기 구하기 (0) | 2018.10.01 |
[C#/TPL] Parallel 클래스 : For 정적 메소드를 사용해 디렉토리 크기 구하기 (0) | 2018.09.13 |
[C#/TPL] Task 클래스 : 스로틀링(Throttling) 처리하기 (0) | 2017.09.09 |
[C#/TPL] Task 클래스 : WhenAny 정적 메소드 사용시, 작업들 중에서 임의 비동기 실행 완료시 처리하기 (0) | 2017.02.07 |
[C#/TPL] Task<T> 클래스 : GetAwaiter 메소드를 사용해 내부 Exception 직접 처리하기 (0) | 2017.02.07 |
[C#/TPL] Task<T> 클래스 : AggregationException 발생시 처리하기 (0) | 2017.02.07 |
[C#/TPL] Task 클래스 : WhenAll 정적 메소드 사용시, 모든 작업 완료 후 처리하기 (0) | 2017.02.07 |
[C#/TPL] Task 클래스 : WhenAll 정적 메소드 사용시, 모든 작업 완료 후 에러 발생시 처리하기 (0) | 2017.02.07 |
댓글을 달아 주세요