Как зайти в Даркнет?!
25th January, 01:11
6
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
895
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
914
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4351
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4396
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Лучшая практика для веб-сервисов
Я создал веб-сервис, и когда я хочу использовать его методы, я создаю его экземпляр в процедуре a, вызываю метод, и я, наконец, избавляюсь от него, однако я думаю, что также можно было бы создать экземпляр веб-сервиса в событии "private void Main_Load(object sender, EventArgs e)".
Дело в том, что если я делаю это первым способом, я должен создавать экземпляр webservice каждый раз, когда мне нужен один из его методов, но в другом случае я должен постоянно поддерживать связь с веб-сервисом, когда я использую его в форме, например.
Я хотел бы знать, какие из этих методов лучше, или если есть гораздо лучший способ сделать это
Стратегия 1
private void btnRead_Click(object sender, EventArgs e)
{
try
{
//Show clock
this.picResult.Image = new Bitmap(pathWait);
Application.DoEvents();
//Connect to webservice
svc = new ForPocketPC.ServiceForPocketPC();
svc.Credentials = new System.Net.NetworkCredential(Settings.UserName, Settings.Password);
svc.AllowAutoRedirect = false;
svc.UserAgent = Settings.UserAgent;
svc.PreAuthenticate = true;
svc.Url = Settings.Url;
svc.Timeout = System.Threading.Timeout.Infinite;
svc.CallMethod();
...
}
catch (Exception ex)
{
ShowError(ex);
}
finally
{
if (svc != null)
svc.Dispose();
}
}
Стратегия 2
private myWebservice svc;
private void Main_Load(object sender, EventArgs e)
{
//Connect to webservice
svc = new ForPocketPC.ServiceForPocketPC();
svc.Credentials = new System.Net.NetworkCredential(Settings.UserName, Settings.Password);
svc.AllowAutoRedirect = false;
svc.UserAgent = Settings.UserAgent;
svc.PreAuthenticate = true;
svc.Url = Settings.Url;
svc.Timeout = System.Threading.Timeout.Infinite;
}
private void btnRead_Click(object sender, EventArgs e)
{
try
{
//Show clock
this.picResult.Image = new Bitmap(pathWait);
Application.DoEvents();
svc.CallMethod();
...
}
catch (Exception ex)
{
ShowError(ex);
}
}
private void Main_Closing(object sender, CancelEventArgs e)
{
svc.Dispose();
}
Прямо сейчас я сделал решение для мобильного устройства, и оно оказывается используемым в нерегулярное время, его можно использовать за 10 минут, 1 час, 4 часа его очень переменная, кажется, что лучший подход-это первая стратегия.
В прошлом году мы пошли на проект, где мы использовали веб-сервисы, дело в том, что мы создали экземпляры наших веб-сервисов в процедуре Sub New(), и она работает очень хорошо, однако иногда некоторые пользователи утверждали, что они проснулись от своих стульев, и когда они вернулись и попытались продолжить работу над приложением, они получили сообщение об ошибке тайм-аута, и им пришлось снова войти в систему.
Мы подумали, что, возможно, это было нормально, потому что, возможно, пользователи вышли на очень долгое время из своих мест, но однажды в презентации приложения с CEOs это произошло точно по тому же сценарию, и лично мне не понравилось такое поведение, и поэтому вопрос.
Спасибо за ответ.