コード例 #1
0
        /// <summary>
        /// Asynchroner Start eines "langlaufenden" WCF- Dienstes. Das Ende des Dienstes muß explizit durch Drücken
        /// des Buttons "btnFertig" sichergestellt werden.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnBegin_Click(object sender, EventArgs e)
        {
            try
            {
                if (callingProxy != null && callingProxy.State != System.ServiceModel.CommunicationState.Closed)
                    throw new Exception("Es wurde bereits ein langlaufender Dienst gestartet. Dieser muß zunächst mit \"Fertig\" beendet werden");

                callingProxy = new CallingPatternsRef.CallingPatternsClient();

                int delay;
                if (int.TryParse(tbxLongRunningOpMinExecTime.Text, out delay))
                {
                    lblResultDelaydStart.Text = DateTime.Now.ToString("T");
                    log.Log(mko.Log.RC.CreateStatus("Asynchrone Ausführung der Langläuferop startet [" + tbxLongRunningOpMinExecTime.Text + " ms]. Bitte \"Fertig\" anklicken!"));
                    aresDeleayedReturn = callingProxy.BeginDelayedReturn(delay, null, null);

                    progressBarLongRunningOp.Minimum = 0;
                    progressBarLongRunningOp.Maximum = 100;
                    progressBarLongRunningOp.Value = 0;

                    CallingPatternsAnimationTimer.Start();
                }
            }
            catch (Exception ex)
            {
                log.Log(mko.Log.RC.CreateError("Beim asynchronen Start eines WCF- Dienstes: " + ex.Message));
            }
        }
コード例 #2
0
        /// <summary>
        /// Warten auf das Ende eines langlaufenden asynchron gestarteten Dienstes
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnFertig_Click(object sender, EventArgs e)
        {
            try
            {
                CallingPatternsAnimationTimer.Stop();
                if (callingProxy != null && callingProxy.State != System.ServiceModel.CommunicationState.Opened)
                    throw new Exception("Es wurde mit Begin noch kein langläufer- Dienst gestatrtet, der mit \"Fertig\" beendet werden kann");

                lblResultDelaydReturn.Text = callingProxy.EndDelayedReturn(aresDeleayedReturn).ToString("T");
                callingProxy.Close();
            }
            catch (Exception ex)
            {
                log.Log(mko.Log.RC.CreateError("Beim Beenden eines asynchronen WCF- Dienstes: " + ex.Message));
            }
        }