public MainForm() { InitializeComponent(); Thread t = new Thread(new ThreadStart(Thread_Function_ReadDataFromServer)); byte[] data; //using (var ms = new MemoryStream()) //{ // Serializer.Serialize(ms, cust); // data = ms.ToArray(); //} Sensor_A = new SensorData(); Sensor_A.Name = "Sensor A"; // Serialyze MemoryStream BinaryFormatter bf = new BinaryFormatter(); using (var ms = new MemoryStream()) { bf.Serialize(ms, Sensor_A); data = ms.ToArray(); } // DeSerialyze MemoryStream using (var memStream = new MemoryStream()) { var binForm = new BinaryFormatter(); memStream.Write(data, 0, data.Length); memStream.Seek(0, SeekOrigin.Begin); var obj = binForm.Deserialize(memStream); Sensor_B = (SensorData)obj; textBox_Tab_TSP_UDP_Rx.Text = Sensor_B.Name; } // Serialization File BinaryFormatter formatter = new BinaryFormatter(); using (SendSensorData = new FileStream("./SensorsInfo.dat", FileMode.Create, FileAccess.Write, FileShare.None)) { formatter.Serialize(SendSensorData, Sensor_A); } // DeSerialization File //Восстановим состояние объекта using (var fStream = File.OpenRead("./SensorsInfo.dat")) { Sensor_B = (SensorData)formatter.Deserialize(fStream); } textBox_Tab_TSP_UDP_Rx.Text = Sensor_B.Name; sd = ParseMessageOverDelegate; // sd("Hello rfom Delegate"); asyncRes = sd.BeginInvoke("Hello from Delegate", null, null); t.Start(); }
static void Main(string[] args) { SomeDelegate sd = SquareNumber; // Create delegate instance Console.WriteLine("Before SquareNumber Method Invoke"); IAsyncResult asyncRes = sd.BeginInvoke(10, null, null); Console.WriteLine("Back to Main Method"); int res = sd.EndInvoke(asyncRes); Console.WriteLine(res); Console.ReadLine(); }
static void Main(string[] args) { SomeDelegate sd = SquareNumber; // Создаем делегат Console.WriteLine("Перед вызовом SquareNumber"); IAsyncResult asyncRes = sd.BeginInvoke(10, null, null); Console.WriteLine("Возвращаемcя в главный метод"); int res = sd.EndInvoke(asyncRes); Console.WriteLine(res); Console.ReadLine(); }
public static void Main() { SomeDelegate d1 = Method; d1.BeginInvoke(null, null); OtherDelegate d2 = Method; d2.EndInvoke(null); StrippedDelegate d3 = Method; d3.DynamicInvoke(null); }
private void get_stability_btn_Click(object sender, EventArgs e) { //デリゲートの実装 SomeDelegate some = new SomeDelegate(delegate { bool result = false; if (LaserPreheat()) { result = true; } else { result = false; } if (getStability()) { result = true; } else { _isErrorOperation = true; result = false; } return result; }); //AsyncCallbackデリゲート AsyncCallback callback = new AsyncCallback(some_Completed); //第一引数にコールバックメソッドを指定 IAsyncResult ar = some.BeginInvoke(callback, null); //処理の終了監視用タイマー始動 operationChecker_tim.Enabled = true; //プログレスバーのスタート stab_prb.Visible = true; startStabProgress(); //ボタンの入力禁止 AllButtonDisable(); //温度チェックの停止とファンの停止 TempAndFanControl(false); log_tbx.Text = "安定性測定中"; log_tbx.Refresh(); }