private static void Channel_Closed(object sender, EventArgs e) { ZServerChannel channel = (ZServerChannel)sender; channel.Closed -= Channel_Closed; // 避免重入 // 中断正在进行的检索 LibraryChannel library_channel = (LibraryChannel)channel.Tag; if (library_channel != null) { library_channel.Abort(); LibraryManager.Log?.Info(string.Format("ZServerChannel({0}) Channel_Closed() 引发 LibraryChannel.Abort()", channel.GetHashCode())); } List <string> names = GetResultSetNameList(channel, true); if (names.Count > 0) { FreeGlobalResultSets(channel, names); } }
// 构造全局结果集名 static string MakeGlobalResultSetName(ZServerChannel zserver_channel, string strResultSetName) { return("#" + zserver_channel.GetHashCode() + "_" + strResultSetName); }