私はGTK2という大きなコードを持っています。このコードでは、整数の値を更新するのに問題があります(この場合trigan、その本体で定義され、2つの関数にコールバックされます)。私にこの問題を与える)。関数間の整数の更新
私はリアルタイムで数字の表示を開始する関数RUNを呼び出すボタンRUNを押す予定です。その後、私は1ここ
にtriganの値を更新、機能停止を呼び出すSTOPボタンを押しますテキストその実行は、問題のコードの一部である間:
void STOP(GtkWidget *widget, GObject *context_object_stp)
{
GtkEntry *trigan = g_object_get_data (context_object_stp, "trigan");
trigan=1;
}
void RUN(GtkWidget *widget, GObject *context_object)
{
GtkEntry *buffer= g_object_get_data (context_object, "buffer");
GtkEntry *wins = g_object_get_data (context_object, "wins");
GtkEntry *trigan = g_object_get_data (context_object, "trigan");
GtkWidget iter;
GtkTextIter iterscrll;
GtkTextMark *mark;
mark = gtk_text_buffer_get_insert(buffer);
gtk_text_buffer_get_iter_at_mark(buffer, &iterscrll, mark);
gtk_text_buffer_get_iter_at_offset(buffer, &iter, 0);
trigan=0;
int i=0;
int k=0;
for (i=0; i<90; i=i+1)
{
while (trigan==1)
{
}
gchar * stuff = g_strdup_printf("%d"" [%d]\n", i, trigan);
/* Inserts buffer at position iter. */
gtk_text_buffer_insert(buffer, &iter, stuff, -1);
g_free(stuff);
/* Forcing. */
while (gtk_events_pending())
gtk_main_iteration();
/* Scrolls text_view the minimum distance such that mark is contained within the visible area of the widget. */
gtk_text_view_scroll_mark_onscreen(GTK_TEXT_VIEW(wins), mark);
for (k=0; k<50000000; k=k+1)
{
k++;
}
k=0;
}
}
私のロジックはその聖霊降臨祭が言うには、 trigan = 1のこの値
while (trigan==1)
{
}
は、関数RUNを「停止」する必要がありますが、そうではありません。
お願いします!
「私の論理は、その聖霊降臨祭triganのこの値は= 1しばらく(trigan == 1)と言います関数を "停止"する必要があります "実際にこのようなループが存在する場合はあなたのコード。 「トリガン」対「トリガ」。教訓:分かりやすい変数名を使用する。 – Lundin
私は主なコードを間違えて転記しました。すべての瞬間の変数名はtriganです。私は投稿を編集しました。ありがとうございました。 – Keles