好吧,所以我试过并试图寻找解决方案,但我没有运气。我真的很感激这里的一些帮助。我在RunWorkerCompleted中有我想要访问的以下字符串,但我不确定它是如何或为何无法访问它。
System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex("link\":\"(.*?)\"");
Match match = reg.Match(result);
string url = match.ToString().Replace("link\":\"", "").Replace("\"", "").Replace("\\/", "/");
return url;
因此该字符串位于我已经将其视为UploadImage
的公共对象中我正在尝试在我的RunWorker中完成访问,因此我的文本框会返回图片网址。
这是我的背景工作者 -
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
string url = UploadImage(FilePath) as string;
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
txtUploaded.Text = (url);
//unknown error in string url as it isn't accessible...
if (txtUploaded.Text != null)
{
Clipboard.Clear();
Clipboard.SetDataObject(txtUploaded.Text, true, 5, 100);
}
else
{
return;
}
任何有关能够使用该字符串将我的文本框设置为返回的图像URL的帮助都会很棒。感谢。
答案 0 :(得分:2)
您的变量url
已定义,只能在后台线程中访问。
BackgroundWorker机制提供了一种将数据从后台线程传递回UI线程的安全方法。
将值分配给DoWork
事件中的结果:
e.Result = UploadImage(FilePath) as string;
然后在RunWorkerCompleted
事件中阅读:
string url = (string)e.Result;