При работе с Lync SDK, запуском клиента бок о бок, а затем его закрытием - он покидает осиротевший хост-процесс, который никогда не завершает работу , Мне нужно вручную убить процесс с помощью кода или диспетчера задач, чтобы он исчез. Так что я с кодом в моем приложении запуска. При одновременном выполнении нескольких процессов - я получаю другие проблемы, а также оставляю процессы на неопределенный срок.Клиент Lync Shutdown (слева) с Lync SDK 2013 оставляет сиротские процессы
Последующий за всеми MSDN, как и с примерами, но все же происходит такое же поведение. Это некоторый код в классе-оболочке, который я написал.
public void Startup()
{
// Same thread should do the startup and shutdown right?
var _currentThreadId = System.Threading.Thread.CurrentThread.ManagedThreadId;
this.KillRunningBackgroundProcesses("lync");
lyncClient = Microsoft.Lync.Model.LyncClient.GetClient(_sideBySide);
// Init lync (needed for side-by-side)
if (lyncClient.State == Microsoft.Lync.Model.ClientState.Uninitialized)
{
lyncClient.BeginInitialize(
(result) => { lyncClient.EndInitialize(result); }
, null);
}
// Wire events
lyncClient.StateChanged += lyncClient_StateChanged;
lyncClient.CredentialRequested += lyncClient_CredentialRequested;
lyncClient.SignInDelayed += lyncClient_SignInDelayed;
lyncClient.CapabilitiesChanged += lyncClient_CapabilitiesChanged;
lyncClient.ClientDisconnected += lyncClient_ClientDisconnected;
lyncClient.ConversationManager.ConversationRemoved += lyncClient_ConversationManager_ConversationRemoved;
lyncClient.ConversationManager.ConversationAdded += lyncClient_ConversationManager_ConversationAdded;
}
Это код отключения:
public void Shutdown()
{
// Same thread should do the startup and shutdown right?
var _currentThreadId = System.Threading.Thread.CurrentThread.ManagedThreadId;
// Unwire events
lyncClient.StateChanged -= lyncClient_StateChanged;
lyncClient.CredentialRequested -= lyncClient_CredentialRequested;
lyncClient.SignInDelayed -= lyncClient_SignInDelayed;
lyncClient.CapabilitiesChanged -= lyncClient_CapabilitiesChanged;
lyncClient.ClientDisconnected -= lyncClient_ClientDisconnected;
lyncClient.ConversationManager.ConversationRemoved -= lyncClient_ConversationManager_ConversationRemoved;
lyncClient.ConversationManager.ConversationAdded -= lyncClient_ConversationManager_ConversationAdded;
//this.lyncClient.BeginShutdown(this.lyncClient.EndShutdown, someStateObject);
this.lyncClient.BeginShutdown(
(result) => { this.lyncClient.EndShutdown(result); }
, null);
this.lyncClient = null;
}
Как изящно выйти/выключить клиент Lync, а вместе с ним - процесс?
Как это предназначено для использования, потому что я предполагаю, что это не нормальное поведение, чтобы процесс зависал бесконечно .. или это так? – imbageek
У меня такая же проблема с окнами 8, но она случайно появилась. – Anas
Я делаю то же, что и вы, хотя я и убиваю его после выключения. Кажется, у всех одна и та же проблема, и, похоже, нет никакого приятного решения atm. –