Ejemplo n.º 1
0
        private async void buttonRead_Click(object sender, EventArgs e)
        {
            SetProgressBar(0);
            try
            {
                buttonRead.Enabled = false;


                IDumpDataReader reader = CreateDumpDataReader(dataGridView1.Rows[0], false);
                if (reader == null)
                {
                    throw new Exception("Invalid input" + Environment.NewLine + "Check highlighted cell");
                }
                buttonSearch.Enabled     = false;
                buttonNarrowDown.Enabled = false;
                buttonCancel.Enabled     = true;

                cancel = new CancellationTokenSource();
                Progress <int> prog = new Progress <int>(SetProgressBar);

                info = await Task.Run(() => reader.Read(cancel.Token, prog));

                SetProgressBar(100);
                System.Media.SystemSounds.Asterisk.Play();

                buttonSearch.Enabled = true;
            }
            catch (System.OperationCanceledException)
            {
                SetProgressBar(0);
                System.Media.SystemSounds.Asterisk.Play();
            }
            catch (Exception ex)
            {
                SetProgressBar(0);
                MessageBox.Show("Read Failed" + Environment.NewLine + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                if (cancel != null)
                {
                    cancel.Dispose();
                }

                buttonCancel.Enabled = false;
                buttonRead.Enabled   = true;
            }
        }
Ejemplo n.º 2
0
        private async void buttonNarrowDown_Click(object sender, EventArgs e)
        {
            try
            {
                SetProgressBar(0);
                Dictionary <IDumpDataReader, long> dumps = new Dictionary <IDumpDataReader, long>();
                for (int i = 1; i < dataGridView1.Rows.Count; i++)
                {
                    DataGridViewRow row = dataGridView1.Rows[i];
                    ClearRowBackColor(row);
                    if (IsBlankRow(row))
                    {
                        continue;
                    }
                    IDumpDataReader reader = CreateDumpDataReader(row, true);
                    if (reader != null)
                    {
                        long target = Convert.ToInt64(row.Cells[5].Value.ToString(), 16);

                        dumps.Add(reader, target);
                    }
                }
                if (dumps.Count == 0)
                {
                    throw new Exception("Fill out 2nd line to narrow down");
                }
                buttonRead.Enabled       = false;
                buttonSearch.Enabled     = false;
                buttonNarrowDown.Enabled = false;
                buttonCancel.Enabled     = true;

                cancel = new CancellationTokenSource();
                Progress <int> prog = new Progress <int>(SetProgressBar);

                List <List <IReverseOrderPath> > copyList = new List <List <IReverseOrderPath> >(result);

                result = await Task.Run(() => FindPath.NarrowDown(cancel.Token, prog, result, dumps));

                SetProgressBar(100);
                System.Media.SystemSounds.Asterisk.Play();
            }
            catch (System.OperationCanceledException)
            {
                SetProgressBar(0);
                System.Media.SystemSounds.Asterisk.Play();
            }
            catch (Exception ex)
            {
                SetProgressBar(0);
                MessageBox.Show(Environment.NewLine + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                if (cancel != null)
                {
                    cancel.Dispose();
                }
                PrintPath();

                buttonRead.Enabled       = true;
                buttonSearch.Enabled     = true;
                buttonNarrowDown.Enabled = true;
                buttonCancel.Enabled     = false;
            }
        }