У меня есть winform (c #) с несколькими вкладками, текущая выделенная вкладка занята выполнением длительной асинхронной операции и встроенным индикатором прогресса "в этой вкладке", показывающим прогресс. Я хочу, чтобы пользователь мог переходить на другие вкладки и выполнять другие задачи, если он / она не хочет ждать. так как я могу сделать это простым и надежным способом?
это короткая операция:
foreach (DataRow _dr in _allDt.Rows)
{
//check if machine is online out of 100 machines list using async approach
if (_connectionUtil.ConnectionIsOn(_dr["ipAddress"].ToString()))
_onMachineAl.Add(_machineInfo);
_progressBar.PerformStep();
}
я должен использовать нить ?! или более простой способ доступен? пожалуйста, предоставьте фрагмент кода или полезный источник.
EDIT:
//async part:
using (TcpClient tcpClient = new TcpClient())
{
IAsyncResult result = tcpClient.BeginConnect(ipAddress, 3306, null, null);
WaitHandle timeoutHandler = result.AsyncWaitHandle;
спасибо,