有异步使用Websync Publisher的方法吗? 目前我正在这样做
var publisher = new Publisher(url);
var result = publisher.Publish(publication);
if (!result.Successful)
//Log exception
此版本的问题在于,在进行第一次发布时,需要大约2秒钟。 我在一些论坛上看到,在早期版本的Websync中,他们提供了使用发布者异步see here的可能性,但出于某种原因,这在Websync 4.0中不可用
我尝试像这样异步发布
var publisher = new Publisher(url);
Func<Publication> a = () => Publisher.Publish(publication);
a.BeginInvoke(result =>
{
var m = result.AsyncState as Func<Publication>;
if (m != null)
{
var asyncResult = m.EndInvoke(result);
if (!asyncResult.Successful)
// Log exception
}
}, a);
但是这导致了
上的“空引用”异常var asyncResult = m.EndInvoke(result);
我在开发过程中无法真正重现。
关于如何更好地解决这个问题的任何想法? 谢谢
答案 0 :(得分:0)
尝试在线程池线程上运行代码:
ThreadPool.QueueUserWorkItem((state) =>
{
var publisher = new Publisher(url);
var result = publisher.Publish(publication);
if (!result.Successful)
//Log exception
}, null);
它是短暂的,因此您可以使用CLR线程池中的线程。