Вверх ↑
Этот топик читают: Гость
Ответов: 1043
Рейтинг: 33
#1: 2012-10-26 16:42:35 ЛС | профиль | цитата
что делать, если при шифровании данных окно зависает (функции при этом выполняются)
Если запускать в отдельном потоке, то программа все время вылетает...
Как с этим бороться То есть надо во время криптографии выводить информативное модальное окно о сохранении данных, при этом
окно должно быть доступно. Что бы не было признаков зависания...
Если вдруг не понятно написал, то скажите. Заранее спасибо
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#2: 2012-10-26 16:46:08 ЛС | профиль | цитата
что делать при зависании
выкладывать схему.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 1043
Рейтинг: 33
#3: 2012-10-26 17:40:10 ЛС | профиль | цитата
сейчас, пример сделаю...
------------ Дoбавленo в 17.04:
вот
Add(MainForm,2953706,161,161)
{
}
Add(Button,3957968,161,210)
{
Left=20
Top=105
Width=160
Height=40
Caption="save"
link(onClick,10326197:doWork1,[])
}
Add(ChildForm,10326197,217,210)
{
}
BEGIN_SDK
Add(EditMulti,12967520,21,21)
{
WorkCount=1
link(doWork1,3026933:doShowModal,[(28,27)(28,139)])
}
Add(MainForm,3026933,35,105)
{
Left=35
Top=105
Width=291
Height=170
Visible=1
Point(onShow)
Point(doShowModal)
link(onShow,12234227:doTimer,[])
}
Add(Label,16035993,70,49)
{
Left=97
Top=30
Width=70
Height=17
Caption="Data saving..."
}
Add(ProgressBar,10901759,231,126)
{
Left=20
Top=75
Width=240
Max=10
}
Add(Timer,12234227,112,126)
{
Interval=200
Enable=1
link(onTimer,13308911:doNext,[])
}
Add(Counter,13308911,161,126)
{
Max=10
link(onNext,10901759:doPosition,[])
}
END_SDK
Add(Button,1876768,161,280)
{
Left=200
Top=105
Width=160
Height=40
Caption="save"
link(onClick,10008060:doWork1,[])
}
Add(Label,12146024,161,105)
{
Left=55
Top=80
Width=92
Height=17
Caption="Как должно быть"
}
Add(Label,4497528,217,161)
{
Left=250
Top=80
Width=72
Height=17
Caption="Как в итоге..."
}
Add(ChildForm,10008060,217,280)
{
}
BEGIN_SDK
Add(EditMulti,12967520,21,21)
{
WorkCount=1
Width=937
Height=515
link(doWork1,3026933:doShowModal,[(28,27)(28,139)])
}
Add(MainForm,3026933,112,105)
{
Left=35
Top=105
Width=291
Height=170
Visible=1
Point(onShow)
Point(doShowModal)
link(onShow,1595399:doEvent1,[])
}
Add(Label,16035993,147,49)
{
Left=97
Top=30
Width=70
Height=17
Caption="Data saving..."
}
Add(ProgressBar,10901759,350,126)
{
Left=20
Top=75
Width=240
Max=10
}
Add(Timer,12234227,189,126)
{
Interval=200
Enable=1
link(onTimer,13308911:doNext,[])
}
Add(Counter,13308911,280,126)
{
Max=10
link(onNext,10901759:doPosition,[])
}
Add(Hub,1595399,154,126)
{
link(onEvent1,12234227:doTimer,[])
link(onEvent2,11292550:doTimer,[(217,139)(217,412)])
}
Add(StrList,10816697,784,406)
{
link(onChange,1036574:doMessage,[(842,412)(842,398)])
}
Add(Message,1036574,868,392)
{
Message="Save complete!"
link(onMessage,3026933:doClose,[(912,398)(912,265)(23,265)(23,132)])
}
Add(Cryptography,1038067,665,427)
{
link(onCrypt,14087395:doConvert,[])
link(Data,6700858:Text,[(671,415)(619,415)(619,512)(566,512)])
link(Key,1952822:Var3,[(678,397)])
}
Add(Stream2Hex,14087395,714,427)
{
Mode=2
link(onResult,10816697:doText,[])
}
Add(StrCatDelim,8530296,679,143)
{
Delimiter=";"
Str2="6"
}
Add(Delete,5963633,609,143)
{
Count=2
link(onDelete,8530296:doStrCatDlm,[])
link(Str,6830386:Var3,[(615,131)(548,131)(548,187)])
link(Position,4376112:reCalc,[])
link(Count,10737156:Value,[(629,117)(664,117)])
}
Add(Length,8152626,539,143)
{
link(onLength,5963633:doDelete,[])
link(Str,6830386:Var1,[(545,131)(524,131)])
}
Add(Memory,13311299,497,143)
{
link(onData,8152626:doLength,[])
}
Add(GetDataEx,6830386,518,182)
{
Angle=3
link(Data,13311299:Value,[(503,187)])
}
Add(Memory,10737156,658,59)
{
Default=Integer(2)
}
Add(MathParse,4376112,609,65)
{
MathStr="%1 -1"
Point(reCalc)
link(X1,8152626:Result,[(615,53)(580,53)(580,186)(545,186)])
}
Add(StrList,2456299,329,336)
{
Strings=#252:5C54465A40575F4316572436792E3136367869695C55445B445428431E5F57471B51594056552E2326697174737A7F68045102070501705200065102525404035D5B22232477762123277E731F76454159592F194250401D5C415B5B030874727073747B7F70717D74795E41405322435F430A0207040600164328327977|252:5C54465A40575F4316572436792E3136367869695C55445B445428431E5F57471B51594056552E2326697174737A7F68045102070501705200065102525404035D5B22232477762123277E731F76454159592F194250401D5C415B5B030874727073747B7F70717D74795E41405322435F430A0207040600164328327974|252:5C54465A40575F4316572436792E3136367869695C55445B445428431E5F57471B51594056552E2326697174737A7F68045102070501705200065102525404035D5B22232477762123277E731F76454159592F194250401D5C415B5B030874727073747B7F70717D74795E41405322435F430A0207040600164328327975|252:5C54465A40575F4316572436792E3136367869695C55445B445428431E5F57471B51594056552E2326697174737A7F68045102070501705200065102525404035D5B22232477762123277E731F76454159592F194250401D5C415B5B030874727073747B7F70717D74795E41405322435F430A0207040600164328327972|252:5C54465A40575F4316572436792E3136367869695C55445B445428431E5F57471B51594056552E2326697174737A7F68045102070501705200065102525404035D5B22232477762123277E731F76454159592F194250401D5C415B5B030874727073747B7F70717D74795E41405322435F430A0207040600164328327973|252:5C54465A40575F4316572436792E3136367869695C55445B445428431E5F57471B51594056552E2326697174737A7F68045102070501705200065102525404035D5B22232477762123277E731F76454159592F194250401D5C415B5B030874727073747B7F70717D74795E41405322435F430A0207040600164328327976|0:|
}
Add(Cryptography,5431086,504,455)
{
link(onCrypt,6700858:doAdd,[])
link(Key,1952822:Var2,[])
}
Add(Stream2Hex,16289427,406,455)
{
Mode=3
link(onResult,2756173:doCase,[])
}
Add(MultiElement,3575489,511,343)
{
}
BEGIN_SDK
Add(EditMulti,1922162,21,21)
{
WorkCount=1
VarCount=1
Width=524
Height=305
link(Var1,14932400:GetData,[(27,252)(76,252)])
}
Add(MotherBoardInfo,12615149,175,70)
{
Point(SerialNumber)
link(onInfo,12583350:doInfo,[])
}
Add(ProcInfo,12583350,231,70)
{
Point(ProcessorId)
}
Add(StrCat,10890618,210,126)
{
link(onStrCat,14932400:doData,[(254,132)(254,139)(44,139)(44,153)])
link(Str1,12615149:SerialNumber,[(216,114)(209,114)])
link(Str2,12583350:ProcessorId,[(223,114)(265,114)])
}
Add(EventFromData,14932400,70,147)
{
link(onEvent,13508224:doEvent1,[])
}
Add(Hub,13508224,119,147)
{
link(onEvent1,12615149:doInfo,[(154,153)(154,76)])
link(onEvent2,10890618:doStrCat,[(171,160)(171,132)])
}
END_SDK
Add(Case,2756173,455,455)
{
link(onNextCase,5431086:doCrypt,[])
}
Add(ArrayEnum,15852273,343,406)
{
link(onItem,16289427:doConvert,[(391,412)(391,461)])
link(onEndEnum,1038067:doCrypt,[(485,419)(485,433)])
link(Array,2456299:Array,[])
}
Add(GetDataEx,1952822,511,392)
{
link(Data,3575489:Var1,[])
}
Add(StrList,6700858,560,455)
{
}
Add(Timer,11292550,266,406)
{
Interval=20
Enable=1
AutoStop=1
link(onTimer,15852273:doEnum,[])
}
END_SDK


Для демонстрации зависания добавил прогресс-бар
------------ Дoбавленo в 17.40:
Tad, я принципе понял что зависает из-за получения инфы о процессоре и материнской плате.
Но все же, если будет зависание... как выйти из этого положения?
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#4: 2012-10-26 17:55:32 ЛС | профиль | цитата
code_29389.txt
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
файлы: 1code_29389.txt [4.9KB] [93]
Голосовали:ashkalov
Ответов: 1376
Рейтинг: 197
#5: 2012-10-26 18:06:15 ЛС | профиль | цитата
ashkalov писал(а):
я принципе понял что зависает из-за получения инфы о процессоре и материнской плате.
Дак и надо дать отработать процессам, хоть в текущем времени, хоть в параллельном поотоке, не жалея на это времени, комп, в отличии от нас, некоторые операции выполняет быстрее, даже не дав нам шанса моргнуть
карма: 1

0
Ответов: 1043
Рейтинг: 33
#6: 2012-10-26 20:48:33 ЛС | профиль | цитата
foksov, причем тут время и зависание?
------------ Дoбавленo в 20.48:
Tad, спасибо +
карма: 0

0
6
Сообщение
...
Прикрепленные файлы
(файлы не залиты)