コード例 #1
0
ファイル: MainForm.cs プロジェクト: xilong1393/ClassMonitor
        private async Task GetWave(int i)
        {
            try
            {
                ClassroomData classroomData = new ClassroomData(list[i].PPCPublicIP, list[i].PPCPort);
                string        xml           = await classroomData.GetAudioData(null, null, list[i].ClassroomID, null, null);

                byte[] bytes = await classroomData.GetBinary(xml);

                Stream       t = new FileStream("video.wav", FileMode.Create);
                BinaryWriter b = new BinaryWriter(t);
                b.Write(bytes);
                t.Close();
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #2
0
ファイル: MainForm.cs プロジェクト: xilong1393/ClassMonitor
        private Task UpdatePictureBox(PictureBox p, Label label, Panel panel, string value, int i)
        {
            CancellationTokenSource tokenSource = (CancellationTokenSource)panel.Tag;

            return(Task.Run(async() =>
            {
                while (true)
                {
                    if (tokenSource.Token.IsCancellationRequested)
                    {
                        break;
                    }
                    try
                    {
                        ClassroomData data = new ClassroomData(list[i].PPCPublicIP, list[i].PPCPort);
                        string xml = await data.GetImageString(null, null, list[i].ClassroomID, null, null, int.Parse(value));
                        byte[] bytes = await data.GetBinary(xml);
                        using (MemoryStream loadStream = new MemoryStream(bytes, 0, bytes.Length))
                        {
                            Action action = () => { p.Image = Image.FromStream(loadStream); };
                            p.SafeInvoke(action, true);
                            Thread.Sleep(2000);
                        }
                    }
                    catch (Exception ex)
                    {
                        Action action = () => { label.Text = ex.Message; label.BackColor = Color.Red; };
                        label.SafeInvoke(action, true);
                    }
                    finally
                    {
                        p.Image = null;
                    }
                }
            }, tokenSource.Token));
        }