private void LoginAsync(User user, LoginSuccessfulDelegate onSuccess, LoginFailureDelegate onFailure) { Thread loginThread = new Thread(new ThreadStart(() => { StatusMessage("LoginControl.Status.Authenticating"); String message = ""; if (user.Authenticate(out message)) { if (onSuccess != null) { onSuccess(); } } else { if (onFailure != null) { onFailure(message); } } })); loginThread.IsBackground = true; loginThread.Start(); }