private void ScreensWorker_DoWork(object sender, DoWorkEventArgs passValue) { object[] argument = (object[])passValue.Argument; ServerScreens serverScreens = argument[0] as ServerScreens; string command = argument[1] as string; SftpClient client = serverScreens.GetSftpClient; serverScreens.StartScreens(); m_ServerScreens.Add(serverScreens); serverScreens.SendCommand(command); }
/// <summary> /// 创建远程Screens /// </summary> /// <param name="serverExe"></param> /// <param name="parameter"></param> /// <param name="session"></param> internal void CreatNewScreens(string location, string username, string password, string command) { RefreshList(); TabItem screensTab = System.Windows.Markup.XamlReader.Parse(m_TabItemXaml) as TabItem; screensTab.MouseDoubleClick += ScreensTab_MouseDoubleClick; TabControl_ServerLog.Items.Add(screensTab); ServerScreens serverScreens = new ServerScreens(location, username, password); serverScreens.CreatTabWindow(TabControl_ServerLog, screensTab); //在后台线程开始执行 BackgroundWorker screensWorker = new BackgroundWorker(); screensWorker.DoWork += ScreensWorker_DoWork; screensWorker.RunWorkerCompleted += ScreensWorker_RunWorkerCompleted; screensWorker.RunWorkerAsync(new object[] { serverScreens, command }); }