powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Непонятка с callback
1 сообщений из 1, страница 1 из 1
Непонятка с callback
    #37299588
relief
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
привет!

есть winforms приложение

[CallbackBehavior(UseSynchronizationContext = false)]
public partial class Form2 : Form, ICalcServiceCallback
{
private SynchronizationContext _context;
private CalcServiceClient _proxy;

public Form2()
{
InitializeComponent();

_context = SynchronizationContext.Current;
InstanceContext callbackContext = new InstanceContext(this);
_proxy = new CalcServiceClient(callbackContext);
}

public void AddListboxItem(object id)
{
listBox1.Items.Add(id);
}

public void OnCallback(int id)
{
SendOrPostCallback setValue = new SendOrPostCallback(AddListboxItem);
_context.Post(setValue, id);
}

private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
var res = _proxy.DoWork(9);
listBox1.Items.Add("total:" + res);
}
}


и есть служба

interface IMyContractCallback
{
[OperationContract(IsOneWay = true)]
void OnCallback(int id);
}

[ServiceContract(CallbackContract = typeof(IMyContractCallback),
SessionMode=SessionMode.Required)]
public interface ICalcService
{
[OperationContract]
int DoWork(int id);
}

[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Reentrant, InstanceContextMode = InstanceContextMode.PerSession)]
public class CalcService : ICalcService
{
public int DoWork(int id)
{
for (int i = 0; i < id; i++)
{
IMyContractCallback callback = OperationContext.Current.GetCallbackChannel<IMyContractCallback>();
callback.OnCallback(id);
}

return id + 4;
}
}


почему у меня сначала приходит результат работы функции DoWork из сервиса, а потом уже заполняется listbox1 (ф-я AddListboxItem)?
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Непонятка с callback
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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