Esempio n. 1
0
        private void ExceptionHandlingSample()
        {
            SqlConnection con = new SqlConnection("server=.;database=AsyncTestDB;uid=sa;pwd=AdiTanuL1$");

            con.Open();
            waitableasync obj = new waitableasync(delegate
            {
                int age       = 28;
                string cmdStr = string.Format("insert into Address values ('{0}',{1},'{2}')",
                                              "Name_" + age.ToString(), age, "Address_" + age.ToString());
                SqlCommand cmd = new SqlCommand(cmdStr, con);
                cmd.ExecuteNonQuery();
            }, _myThreadPool, delegate(async objAsync)
            {
                if (con.State == ConnectionState.Open)
                {
                    con.Close();
                }
                if (objAsync.CodeException != null)
                {
                    MessageBox.Show(string.Format("Failed. Error: {0}", objAsync.CodeException.Message));
                }
                else
                {
                    MessageBox.Show("Successfully completed the insert");
                }
            });
        }
Esempio n. 2
0
        private void UserCreatedThreadPoolSample()
        {
            int maxPrimeNum      = 10000;
            int iFirstHalfStart  = 1;
            int iFirstHalfEnd    = maxPrimeNum / 2;
            int iSecondHalfStart = iFirstHalfEnd + 1;
            int iSecondHalfEnd   = maxPrimeNum;

            int countPrime = 0;

            long          st        = DateTime.Now.Ticks;
            waitableasync firstHalf = new waitableasync(delegate
            {
                for (int i = iFirstHalfStart; i <= iFirstHalfEnd; i++)
                {
                    bool isPrime = true;
                    for (int j = 2; j <= (i / 2); j++)
                    {
                        if ((i % j) == 0)
                        {
                            isPrime = false;
                            break;
                        }
                    }
                    if (isPrime == true)
                    {
                        Interlocked.Increment(ref countPrime);
                    }
                }
            }, _myThreadPool);

            waitableasync secondHalf = new waitableasync(delegate
            {
                for (int i = iSecondHalfStart; i <= iSecondHalfEnd; i++)
                {
                    bool isPrime = true;
                    for (int j = 2; j <= (i / 2); j++)
                    {
                        if ((i % j) == 0)
                        {
                            isPrime = false;
                            break;
                        }
                    }
                    if (isPrime == true)
                    {
                        Interlocked.Increment(ref countPrime);
                    }
                }
            }, _myThreadPool);

            firstHalf.Wait(-1);
            secondHalf.Wait(-1);

            long et = DateTime.Now.Ticks;

            MessageBox.Show(string.Format("Prime count: {0}, Total time: {1}", countPrime, ((et - st) / 10000).ToString()));
        }
Esempio n. 3
0
        private void WinFormsControlUpdateSample()
        {
            SynchronizationContext sc = SynchronizationContext.Current;
            int maxPrimeNum           = 10000;
            int iFirstHalfStart       = 1;
            int iFirstHalfEnd         = maxPrimeNum / 2;
            int iSecondHalfStart      = iFirstHalfEnd + 1;
            int iSecondHalfEnd        = maxPrimeNum;

            int countPrime = 0;

            long          st        = DateTime.Now.Ticks;
            waitableasync firstHalf = new waitableasync(delegate
            {
                for (int i = iFirstHalfStart; i <= iFirstHalfEnd; i++)
                {
                    bool isPrime = true;
                    for (int j = 2; j <= (i / 2); j++)
                    {
                        if ((i % j) == 0)
                        {
                            isPrime = false;
                            break;
                        }
                    }
                    if (isPrime == true)
                    {
                        Interlocked.Increment(ref countPrime);
                        string sMsg = string.Format("I: {0}, Thread ID: {1}", i, Thread.CurrentThread.ManagedThreadId);
                        sc.Send(delegate(object state) { listBox1.Items.Add(sMsg); }, null);
                    }
                }
            }, _myThreadPool);

            waitableasync secondHalf = new waitableasync(delegate
            {
                for (int i = iSecondHalfStart; i <= iSecondHalfEnd; i++)
                {
                    bool isPrime = true;
                    for (int j = 2; j <= (i / 2); j++)
                    {
                        if ((i % j) == 0)
                        {
                            isPrime = false;
                            break;
                        }
                    }
                    if (isPrime == true)
                    {
                        Interlocked.Increment(ref countPrime);
                        string sMsg = string.Format("I: {0}, Thread ID: {1}", i, Thread.CurrentThread.ManagedThreadId);
                        sc.Send(delegate(object state) { listBox1.Items.Add(sMsg); }, null);
                    }
                }
            }, _myThreadPool);
        }
Esempio n. 4
0
 private void RemoveFromProgress(waitableasync value)
 {
     _lockStepInProgress.EnterWriteLock();
     try
     {
         _stepInProgress.Remove(value);
     }
     finally
     {
         _lockStepInProgress.ExitWriteLock();
     }
 }
Esempio n. 5
0
        private void WaitableAsyncSample()
        {
            SqlConnection con = new SqlConnection("server=.;database=AsyncTestDB;uid=sa;pwd=AdiTanuL1$");

            con.Open();
            waitableasync obj = new waitableasync(delegate
            {
                int age       = 28;
                string cmdStr = string.Format("insert into Address values ('{0}',{1},'{2}')",
                                              "Name_" + age.ToString(), age, "Address_" + age.ToString());
                SqlCommand cmd = new SqlCommand(cmdStr, con);
                cmd.ExecuteNonQuery();
            });

            obj.Wait(-1);
            MessageBox.Show("Done");
        }
Esempio n. 6
0
        private void PopulateObjects( )
        {
            if (_tblObjects == null)
            {
                _tblObjects = new DataTable();
            }
            else
            {
                _tblObjects.Clear();
            }


            waitableasync obj = new waitableasync(delegate
            {
                SqlCommand cmd         = new SqlCommand(ResManager.GetDBScript("Script_CodeCompletionProposal"), _conn);
                SqlDataAdapter adapter = new SqlDataAdapter();
                adapter.SelectCommand  = cmd;
                adapter.Fill(_tblObjects);
            });

            obj.Wait(-1);
        }
Esempio n. 7
0
        private void PopulateUsers( )
        {
            if (_tblUsers == null)
            {
                _tblUsers = new DataTable();
            }
            else
            {
                _tblUsers.Clear();
            }

            waitableasync obj = new waitableasync(delegate
            {
                SqlCommand cmd         = new SqlCommand(ResManager.GetDBScript("Script_GetUsers"), _conn);
                SqlDataAdapter adapter = new SqlDataAdapter();
                adapter.SelectCommand  = cmd;
                adapter.Fill(_tblUsers);
            });

            obj.Wait(-1);
            _bsUsers.DataSource = _tblUsers;
        }