/// <summary> /// Tries to cancel asynchronous operation and joins loading thread. /// </summary> /// <param name="milisecondsTimeout">Thread.Join timeout or 0 for unlimited timeout.</param> public void CancelAndJoin(int milisecondsTimeout = 0) { _loadingCommand.Cancel(); if (_loadingCommand.IsRunning) { if (milisecondsTimeout <= 0) { _loadingThread.Join(); } else { _loadingThread.Join(milisecondsTimeout); } } }