我正在做一个Rss Feed Reader程序,我想用html格式显示文章描述。我搜索一些文章和关于它的问题,我找到了extendedrichTextbox和类似的东西,但我不喜欢它们。(因为它太复杂,我只想显示价值)所以我决定在webbrowser中显示内容。我将所有文章描述html代码保存到单独的html文件中,然后当我想在webbrowser中显示内容时,我收到文件路径并将其设置为Webbrowser.Url
这是我的代码:
var articles = user.RssFeeds.Where(r => r.Id == rssFeedId).Select(p => p.Articles).First();
var filePath = (from a in articles
where a.Title == articleName
select a.FilePath).First();
webBrowser1.Url = new Uri(filePath);
我的问题是在设置Webbrowser.Url时它需要太多时间,而我的Window会冻结5-10秒。当它发生时我试试这个:
var task = Task.Factory.StartNew(() => webBrowser1.Url = new Uri(filePath));
但它不起作用,因为它仍然在同一个线程上工作,我尝试了其他愚蠢的方法,但它们也没有工作。当我点击树视图中的第一个文章节点,之后所有文章显示没有冻结时,会发生这个问题。 / p>
所以我等你的答案和建议。等我的英语不好。
答案 0 :(得分:1)
设置WebBrowser.Url
只会触发下载,通常您还需要处理DocumentComplete
事件才能转到下一个网址。您可以使用异步循环执行此操作,例如DoWorkAsync
from here。