Click here to Skip to main content
15,893,486 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
XML
/// <summary>
/// function put username and password
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void m_vpn_needLoginAndPassword(object sender, NeedLoginAndPasswordEventArgs e)
{
   e.UserName = username.Text;
   e.Password = password.Password;

}



error

The calling thread cannot access this object because a different thread owns it.

i use

C#
if (Application.Current.Dispatcher.CheckAccess())
{
   e.UserName = username.Text;
   e.Password = password.Password;
}
else
{
    //Other wise re-invoke the method with UI thread access
   e.UserName = username.Text;
   e.Password = password.Password;

}</pre>


not work

thank you
Posted

1 solution

All correct, exactly as the exception message tells you. On the else branch, use Dispatcher.Invoke:
http://msdn.microsoft.com/en-us/library/system.windows.threading.dispatcher.invoke.aspx[^].

For some explanations, please see my past answers:
Control.Invoke() vs. Control.BeginInvoke()[^],
Problem with Treeview Scanner And MD5[^].

—SA
 
Share this answer
 
Comments
witawat 29-Jun-13 2:06am    
hello

i not understand Invoke function if code work at c# not use wpf ..
///
/// function put username and password
///

/// <param name="sender"></param>
/// <param name="e"></param>
private void m_vpn_needLoginAndPassword(object sender, NeedLoginAndPasswordEventArgs e)
{
if (Application.Current.Dispatcher.CheckAccess())
{
e.UserName = username.Text;
e.Password = password.Password;
}
else
{
//Other wise re-invoke the method with UI thread access
e.UserName = username.Text;
e.Password = password.Password;

// Can use code ?

}
}
Sergey Alexandrovich Kryukov 29-Jun-13 12:10pm    
Why are you repeating the code? Why didn't you follow my advice?
Even if it's new, please move it to the question using "Improve question".
—SA

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900