WinForms - Add some extra Dispose checks to InvokeOnUiThreadIfRequired

Also added stackoverflow link regarding calling after the control has been disposed
This commit is contained in:
amaitland 2019-12-14 11:56:47 +10:00
parent 0d386bf7b5
commit fcbdda0964

View File

@ -16,6 +16,14 @@ namespace CefSharp.MinimalExample.WinForms.Controls
/// <param name="action">action to be performed on the control</param> /// <param name="action">action to be performed on the control</param>
public static void InvokeOnUiThreadIfRequired(this Control control, Action action) public static void InvokeOnUiThreadIfRequired(this Control control, Action action)
{ {
//If you are planning on using a similar function in your own code then please be sure to
//have a quick read over https://stackoverflow.com/questions/1874728/avoid-calling-invoke-when-the-control-is-disposed
//No action
if (control.Disposing || control.IsDisposed || !control.IsHandleCreated)
{
return;
}
if (control.InvokeRequired) if (control.InvokeRequired)
{ {
control.BeginInvoke(action); control.BeginInvoke(action);