Use C# Backgroundworker
private SynchronizationContext _context;
public string ScreenName { get { return "Dashboard"; } }
public DashboardUC()
{
_context = SynchronizationContext.Current;
if (_context == null)
{
_context = new SynchronizationContext();
}
InitializeComponent();
LoadInternals();
}
private void FillTaskAssignmentsTfList()
{ var worker = new BackgroundWorker();
worker.DoWork += delegate(object sender, DoWorkEventArgs args)
{
var result = ProxyFactory.CreateProxy<IDashboardService>().GetTaskAssignmentsForUser(ClientSession.Current.User.User.Id);
args.Result = result;
};worker.RunWorkerCompleted += delegate(object sender, RunWorkerCompletedEventArgs args)
{
if (args.Result is MethodResult)
{
var result = args.Result as MethodResult<DataTable>;
RunSafely(() =>
{if (result.Exception != null)
{
throw result.Exception;
}
this.taskTfListControl.DataSource = result.Result;
if (ClientSession.Current.User.IsAuthorized(UserRight.GrantChiefApprovalTestReleasePackage)
&& !taskTfListControl.GridMultiSelectRows
)taskTfListControl.GridMultiSelectRows = true;
});
}
};
worker.RunWorkerAsync();
}
public string ScreenName { get { return "Dashboard"; } }
public DashboardUC()
{
_context = SynchronizationContext.Current;
if (_context == null)
{
_context = new SynchronizationContext();
}
InitializeComponent();
LoadInternals();
}
private void FillTaskAssignmentsTfList()
{ var worker = new BackgroundWorker();
worker.DoWork += delegate(object sender, DoWorkEventArgs args)
{
var result = ProxyFactory.CreateProxy<IDashboardService>().GetTaskAssignmentsForUser(ClientSession.Current.User.User.Id);
args.Result = result;
};worker.RunWorkerCompleted += delegate(object sender, RunWorkerCompletedEventArgs args)
{
if (args.Result is MethodResult)
{
var result = args.Result as MethodResult<DataTable>;
RunSafely(() =>
{if (result.Exception != null)
{
throw result.Exception;
}
this.taskTfListControl.DataSource = result.Result;
if (ClientSession.Current.User.IsAuthorized(UserRight.GrantChiefApprovalTestReleasePackage)
&& !taskTfListControl.GridMultiSelectRows
)taskTfListControl.GridMultiSelectRows = true;
});
}
};
worker.RunWorkerAsync();
}
Yorumlar
Yorum Gönder