static void ReportProgress(object state)
        {
            ReportProgressState e =
                state as ReportProgressState;

            e.translateState.RaiseProgressChanged(e.translateResult);
        }
        internal static void TranslateWorker(
            ServiceItemSetting translatorSetting,
            AsyncTranslateState translateState)
        {
            if (translateState.IsTerminated)
            {
                return;
            }

            Result tr = translatorSetting.ServiceItem.Translate(translateState.Phrase, translatorSetting.LanguagePair, translatorSetting.Subject, translatorSetting.NetworkSetting, translateState);

            ReportProgressState repState = new ReportProgressState(tr, translateState);

            try
            {              //lock errors when
                translateState.AsyncOperation.Post(ReportProgress, repState);
            }
            catch (InvalidOperationException)
            {
            }
        }
        internal static void TranslateWorker(
            ServiceItemSetting translatorSetting,
            AsyncTranslateState translateState)
        {
            if(translateState.IsTerminated)
                return;

            Result tr = translatorSetting.ServiceItem.Translate(translateState.Phrase, translatorSetting.LanguagePair, translatorSetting.Subject, translatorSetting.NetworkSetting, translateState);

            ReportProgressState repState = new ReportProgressState(tr,translateState);

            try
            {  //lock errors when
                translateState.AsyncOperation.Post(ReportProgress, repState);
            }
            catch(InvalidOperationException)
            {

            }
        }