private void Operate(object obj) { switch (operateenum) { case OperateEnum.OperateEnum_UpgradeVersion: { if ((Angle != -130) && Angle != (-130 + 360)) { break; } new Thread(() => { if (string.IsNullOrEmpty(version)) { displayMsg = "版本号不能为空!"; return; } foreach (var item in ruanjianList) { if (item.Banbenhao == version) { displayMsg = "版本号已存在!"; return; } } if (!File.Exists(filePath)) { displayMsg = "请输入有效文件路径!"; return; } else { FileInfo fileinfo = new FileInfo(filePath); if (fileinfo.Length > 0x6400000) { displayMsg = "文件不能大于100M"; return; } } displayMsg = ""; Angle = -130 + 1; try { FileStream stream = new FileStream(filePath, FileMode.Open, FileAccess.Read); byte[] array = new byte[stream.Length]; stream.Read(array, 0, (int)stream.Length); stream.Close(); WorkServer.addRuanjianbao("0", version, Marshal.UnsafeAddrOfPinnedArrayElement(array, 0), array.Length, Marshal.GetFunctionPointerForDelegate(_addtablecallbackdelegate), true); QueryRuanjianbao(null); } catch (Exception e) { string str = e.Message; } }).Start(); } break; } }