Бред


Ответить в тред Ответить в тред

Check this out!
<<
Назад | Вниз | Каталог | Обновить тред | Автообновление
58 13 15

Аноним 01/11/19 Птн 21:42:28 2065904281
image.png (2Кб, 221x92)
221x92
сап кхаркачь, в pr 0 программистов. Нужен ответ(на C#): как сделать метод, который завершает работу другого метода. Объясните дебилу пожалуйста :(
Аноним 01/11/19 Птн 21:44:58 2065906042
бамп
Аноним 01/11/19 Птн 21:47:04 2065907353
бамп
Аноним 01/11/19 Птн 21:48:19 2065908084
Пошёл нахуй, как тебе такой метод, недоджун?
Аноним 01/11/19 Птн 21:48:55 2065908515
>>206590428 (OP)
Это так не работает.
Второй метод должен проверять, не установлен ли флаг завершения, и, если установлен, самостоятельно прекращать работу.
Аноним 01/11/19 Птн 21:50:51 2065909536
>>206590851
жаль, ну спасибо за ответь
Аноним 01/11/19 Птн 21:51:47 2065910157
>>206590428 (OP)
Можешь сделать Task и из первого метода вызвать отмену операции
Аноним 01/11/19 Птн 21:52:50 2065910948
image.png (117Кб, 712x771)
712x771
Аноним 01/11/19 Птн 21:54:06 2065911759
Если речь не про .сore, а про полный фреймворк, то есть вариант с выгрузкой appdomain
Аноним 01/11/19 Птн 21:54:10 20659118010
>>206591015
Получится полностью прекратить все методы?
Аноним 01/11/19 Птн 21:54:46 20659121711
Аноним 01/11/19 Птн 21:55:54 20659128312
>>206591015
>Можешь сделать Task и из первого метода вызвать отмену операции
Но метод таски все равно должен проверять значение TaskStatus или состояние CancellationToken.
Аноним 01/11/19 Птн 21:56:50 20659133713
>>206591283
Мне и нужна проверка, что если что-то введено с клавы - то все методы прекращают работу
Аноним 01/11/19 Птн 21:56:58 20659134414
>>206590428 (OP)
ОП, ты лушче расскажи, что именно пытаешься сделать, так будет проще.
Аноним 01/11/19 Птн 21:58:16 20659143215
>>206591344
Запускается метод который каждые 2 секунды пишет "Hello", после того, как в консоль напишут "/stop", вся хуйня остановится.
Аноним 01/11/19 Птн 21:58:18 20659143416
>>206591337
>Мне и нужна проверка, что если что-то введено с клавы - то все методы прекращают работу
Ну вот и сделай флаг прекращения работы, который будет устанавливаться потоком, мониторящим ввод, а проверяться всеми остальными потоками.
Аноним 01/11/19 Птн 21:59:10 20659147617
>>206591432
Ну, то, о чем ты пишешь, можно сделать вообще без потоков. Тебе принципиальна многопоточность или как?
Аноним 01/11/19 Птн 21:59:32 20659150018
>>206591434
я не умею еще юзать потоки :(
Аноним 01/11/19 Птн 22:07:57 20659198019
Вызов метода должен происходить через инструкцию jmp, тело функции stop такого:
stop:
asm("ret")

Тогда ты вызываешь так:
jmp stop

Но не забудь вернуть состояние стека!
Аноним 01/11/19 Птн 22:08:44 20659202020
>>206591980
для этого using какой-то подключать надо?
Аноним 01/11/19 Птн 22:09:46 20659207321
image.png (46Кб, 551x225)
551x225
Аноним 01/11/19 Птн 22:15:57 20659241922
>>206590428 (OP)
Выполняй тот метод, который надо завершить в отдельном потоке.
А завершающий метод пусть убивает созданный поток.
У тасок вроде тоже должен быть подобный механизм.
Аноним 01/11/19 Птн 22:17:25 20659249623
15719452486300.jpg (100Кб, 757x768)
757x768
>>206592020
Нет, для этого ассемблер нужен. В сисярпе же есть доступ к ассемблеру? Язык вроде компилируемый. Посмотри, каким образом функция сохраняет значение стека при вызове, обычно в rbp сохраняет, также надо вернуть значение которое в rbp было до этого.

Значит, функция stop должна выглядеть так:
asm("movq %rbp, %rsp\t\n");
asm("popq %rbp\t\n");
asm("ret");

Думаю, стоит сделать макрос для чистоты кода
#define stop() (asm("jmp stop\t\n"))
Аноним 01/11/19 Птн 22:19:08 20659260724
>>206592496
дядя 300к/писисекунда, выйдите пожалуйста из моего треда для новичков.
Аноним 01/11/19 Птн 22:19:39 20659264125
>>206592607
Я вообще-то за 32к в месяц работаю
Аноним 01/11/19 Птн 22:19:46 20659264926
image.png (42Кб, 684x379)
684x379
Ну как-то вот так, только у тебя будет все равно проблема в том, чтобы попасть в этот интервал
Аноним 01/11/19 Птн 22:21:35 20659276627
>>206592649
спасибо, щас буду тестить
Аноним 01/11/19 Птн 22:21:41 20659277428
image.png (51Кб, 702x522)
702x522
Аноним 01/11/19 Птн 22:24:26 20659293629
>>206592774
Чтобы этого не было поменяй
Thread.Sleep и строчку после него местами
Аноним 01/11/19 Птн 22:25:36 20659301530
Аноним 01/11/19 Птн 22:26:01 20659303831
Аноним 01/11/19 Птн 22:26:27 20659307732
image.png (68Кб, 723x705)
723x705
>>206593015
Ну хуй знает, какая версия платформы? Все подключено?
Аноним 01/11/19 Птн 22:28:02 20659317533
>>206593077
вроде все подключил.
>версия платформы
не ебу, как чекнуть? Если ты про VS, то 2019
Аноним 01/11/19 Птн 22:30:58 20659337234
>>206593175
В настройках проекта что стоит?
Должен быть Net Framework не ниже 4.5
Аноним 01/11/19 Птн 22:32:08 20659346135
>>206592073
>Необязательно, можно и без
Ну я имел в виду, что в таске все равно должно быть какая-то логика для этого, нельзя завершить рандомный метод, в котором это не было предусмотрено.
Аноним 01/11/19 Птн 22:35:08 20659364936
>>206593372
я могу как-то обновить фреймворк?
Аноним 01/11/19 Птн 22:36:21 20659372437
image.png (13Кб, 383x159)
383x159
Аноним 01/11/19 Птн 22:36:40 20659374138
>>206591476
Объясни, пожалуйста, как это можно без потока реализовать.
Аноним 01/11/19 Птн 22:37:09 20659377839
Аноним 01/11/19 Птн 22:42:08 20659406540
image.png (22Кб, 839x370)
839x370
>>206593649
Вот это в настройках проекта (не решения)
Аноним 01/11/19 Птн 22:46:27 20659436041
>>206594065
это где ваще находится, я уже все окно по три раза пересмотрел, не могу найти
Аноним 01/11/19 Птн 22:48:13 20659446342
Аноним 01/11/19 Птн 22:50:06 20659457343
image.png (55Кб, 664x945)
664x945
>>206594360
Вот, самый последний пункт в контекстном меню
Аноним 01/11/19 Птн 22:51:15 20659464444
image.png (30Кб, 340x486)
340x486
Аноним 01/11/19 Птн 22:57:24 20659498245
>>206594644
Ебать, что с твоей визуалкой не так?
У меня свойства всегда есть, даже если проект на NET Core.
Попробуй пересоздать решение или проверь на пустом проекте
Аноним 01/11/19 Птн 22:59:39 20659510446
image.png (76Кб, 1012x595)
1012x595
>>206594982
бля, почему у всех всегда все норм а я один долбоеб? Так же не должно быть, пытался переустанавливать + устанавливал по гайдам, все равно такая хуйня
Аноним 01/11/19 Птн 23:00:01 20659512947
вы че в российских ide сидите
Аноним 01/11/19 Птн 23:00:36 20659516948
>>206595104
Ты чет не установил, если у тебя только .Net Core доступен, а вообще в нем тоже должно работать
Аноним 01/11/19 Птн 23:02:23 20659527949
>>206595169
я устанавливал еще всякую хуйню для веба, но по другому же должно окно создания проекта выглядеть, не?
Аноним 01/11/19 Птн 23:03:59 20659536950
>>206595279
Не, окно создание проекта выглядит правильно.
Другое дело, что CancellationTokenSource для NET Core лежит в System.Threading и доступен аж с версии 1.1 (ниже у меня нет).

Если создать проект с нуля, то у него есть окно свойств?
Аноним 01/11/19 Птн 23:04:19 20659538651
>>206595129
СУКИ!! 1 ноября вообще то, АЛЛООООО! Вам интернет заблокировали нахой!
Аноним 01/11/19 Птн 23:04:34 20659540452
image.png (92Кб, 973x673)
973x673
>>206595279
Ну у меня оно вот так вот выглядит
Аноним 01/11/19 Птн 23:05:59 20659549253
>>206595369
свойств нет. Всем спасибо кто принял участие в моем обучении, тред закрыт, я спать
Аноним 01/11/19 Птн 23:10:00 20659572254
>>206595492
Попробуй переустановить Visual Studio (или установить 2017 вместо 2019).
Это походу весьма известная бага, лол.
Аноним 01/11/19 Птн 23:20:54 20659635755
void stop
{
stopBool = true
}

void main {
while (!stop) {
всю хуйню сюда
}
}
Аноним 01/11/19 Птн 23:27:07 20659669156
Аноним 01/11/19 Птн 23:31:35 20659695857
>>206592496
>Язык вроде компилируемый.
Он в виртуальной машине CLR крутится вроде бы, чтобы всякие потные индуские лапы не лезли куда не надо. Хотя там наверняка jit-компиляция прикручена, как в жабе.
Аноним 01/11/19 Птн 23:35:51 20659719858
>>206596691
Библия C# программиста
Рихтер Джеффри - CLR via C#. Программирование на платформе Microsoft.NET Framework 4.5 на языке C#
Аноним 02/11/19 Суб 00:50:03 20660146159
>>206590428 (OP)
private bool isUp

public void method()
{
while (true) {
if (isUp) {
//do things
} else {
break;
}
}
}

public void stop()
{
isUp = false;
}

Ну или как там у вас в решётке. Но суть, надеюсь уловил
Настройки X
Ответить в тред X
15000 [S]
Макс объем: 20Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
X
Ваш шидевор X
Стикеры X
Избранное / Топ тредов