2
我在运行UserControl中的BackgroundWorker以从服务器下载某些内容时遇到了问题。我的问题是,当我编写下面的代码时,UserControl获取返回到主窗体并下载不开始。如何在WPF中的UserControl中运行BackgroundWorker?
public AdFeeds()
{
InitializeComponent();
bgWorker = new BackgroundWorker();
bgWorker.DoWork += bgWorker_DoWork;
bgWorker.RunWorkerAsync();
}
void bgWorker_DoWork(object sender, DoWorkEventArgs e)
{
DownloadWallpaper();
}
要下载壁纸我使用下面的代码
public static void DownloadWallpaper()
{
try
{
DataSet dsFile = Global.ReadConfig;
XDocument xDoc = XDocument.Load(dsFile.Tables[0].Rows[0][9].ToString());//[email protected]"..\..\..\App_Data\Wallpaper.xml");//(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\Wallpaper\\Themes.xml");
string s = xDoc.Root.Name.ToString();
var countNode = xDoc.Root.Elements().Count();
for (int i = 0; i < countNode; i++)
{
XNode childNode = xDoc.Root.Nodes().ElementAt(i);
XElement ele = (XElement)childNode;
path = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\Wallpaper\\Banner\\" + ele.Name;
DirectoryInfo di = Directory.CreateDirectory(path);
var movieList = from a in xDoc.Root.Descendants(ele.Name).Elements()
select new Ad()
{
Path = ele.Name.ToString(),
Link = a.Value
};
foreach (var a in movieList)
{
Global.filedownload(dsFile.Tables[0].Rows[0][1].ToString() + "/Banner/" + ele.Name + "/", path + "\\");
advertisement.Add(a);
}
}
}
catch
{
}
}
我想,当主窗体被初始化,所以我等到用户控件的内容下载我的UI被初始化用户控件被锁定直到内容被下载。
它为我工作,但我仍然有这个问题。我想更新用户界面,每当下载墙纸文件夹,但与此代码我的用户界面正在更新时,保存在服务器上的壁纸的整个文件夹被下载。 –
我想你应该发布新的问题,因为你有你的答案。 – Prathyush