我正在使用3d派对库。 我有以下代码:
Session s = new Session(AuthParam.Login, AuthParam.Password);
s.Connect();
s.Connected += (sender, eventArgs) =>
{
_contactCollection = s.ContactList.Contacts.Select(x => new Contact(x.Nickname, x.Uin)).ToList();
};
s.ConnectionError += (sender, eventArgs) =>
{
};
s.Dispose();
s.Connect在单独的线程中工作。所以我想停止执行功能。等待引发事件然后继续执行。我该怎么办?
答案 0 :(得分:1)
为什么不能重新排序代码,以便在调用Connect
之前添加事件处理程序?
Session s = new Session(AuthParam.Login, AuthParam.Password);
s.Connected += (sender, eventArgs) =>
{
_contactCollection = s.ContactList.Contacts.Select(x => new Contact(x.Nickname, x.Uin)).ToList();
};
s.ConnectionError += (sender, eventArgs) =>
{
};
s.Connect();
通过这种方式,您可以获得由Connect
方法引起的引发事件,因为在调用 Connect
之前它们已连接到。
一旦被调用,就无法阻止Connect
执行。 1
1 我想你可以在一个单独的线程上执行Connect
然后暂停该线程,但这充满了问题;太多了,无法在此列举。