это произошло со мной, потому что я попытался выполнить access UI
компонент в another thread insted of UI thread
, как этот
private void button_Click(object sender, RoutedEventArgs e)
{
new Thread(SyncProcces).Start();
}
private void SyncProcces()
{
string val1 = null, val2 = null;
//here is the problem
val1 = textBox1.Text;//access UI in another thread
val2 = textBox2.Text;//access UI in another thread
localStore = new LocalStore(val1);
remoteStore = new RemoteStore(val2);
}
, чтобы решить эту проблему, обернуть любой вызов ui внутри , о чем упоминал Кандид в своем ответе
private void SyncProcces()
{
string val1 = null, val2 = null;
this.Dispatcher.Invoke((Action)(() =>
{//this refer to form in WPF application
val1 = textBox.Text;
val2 = textBox_Copy.Text;
}));
localStore = new LocalStore(val1);
remoteStore = new RemoteStore(val2 );
}
У конструктора вложения действительно есть конструктор, который делает то, в чем Вы нуждаетесь. Я предполагаю, что Вы используете Систему. Сеть. Класс MailMessage от Платформы.NET 2. Раз так читает эту ссылку для некоторого примера кода того, в чем Вы нуждаетесь
Параметр имени в конструкторе Вложения является именем, которое будет отображено для вложения в электронном письме получателя.
Таким образом можно свободно выбрать параметр имени (расширение .xls предпочтенный) и установить mediaType параметр на "application/vnd.ms-excel", который является определенным тип MIME для файлов Excel.
---------------я предполагаю, что я неправ, это - то, если у Вас есть файл, Вы хотите присоединить---------------
, похоже, что существует пример отправки почты с вложением здесь:
http://www.aspnettutorials.com/tutorials/email/email-attach-aspnet2-csharp.aspx
я надеюсь, что это - то, что Вы ищете.