powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / thread & fuction
4 сообщений из 4, страница 1 из 1
thread & fuction
    #39215192
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
День добрый,

Возможно ли выполнить GetPayments как ApartmentState.STA?

SAPFunctionsOCX и SAPLogonCtrl выдают эксепшн в 64 битной среде. Если запускать как ApartmentState.STA тогда все ОК.

В гугле примеры только с void, а мне нужно будет на страницу вернуть результат.

Код: c#
1.
2.
3.
4.
5.
6.
    public class PaymentService : IPaymentService
    {
        public IEnumerable<Payment> GetPayments(DateTime? paymentDateStart, DateTime? paymentDateEnd, string paymentType)
        {
        }
    }
...
Рейтинг: 0 / 0
thread & fuction
    #39215210
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вроде заработало.
сделал в контроллере вот так.

Код: c#
1.
2.
3.
4.
5.
            IEnumerable<Payment> payments = null;
            var threadPayment = new Thread(() => payments = paymentService.GetPayments(paymentDateStart, paymentDateEnd, paymentType));
            threadPayment.SetApartmentState(ApartmentState.STA);
            threadPayment.Start();
            threadPayment.Join();
...
Рейтинг: 0 / 0
thread & fuction
    #39215214
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы ещё синхронизацию добавил. Создавать объект лучше тоже внутри критической секции.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
static readonly object PaymentServiceSync = new object();

...

IEnumerable<Payment> payments = null;
            var threadPayment = new Thread(() =>
            {
                lock(PaymentServiceSync) 
                      payments = new PaymentService().GetPayments(paymentDateStart, paymentDateEnd, paymentType)
             });
            threadPayment.SetApartmentState(ApartmentState.STA);
            threadPayment.Start();
            threadPayment.Join();
...
Рейтинг: 0 / 0
thread & fuction
    #39216064
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огромное спасибо!!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / thread & fuction
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]