no more submodule
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Gtk;
|
||||
|
||||
namespace Samples
|
||||
{
|
||||
[Section(ContentType = typeof(TimerDemo), Category = Category.Miscellaneous)]
|
||||
class TimerSection : Box
|
||||
{
|
||||
public TimerSection() : base(Orientation.Horizontal, 3)
|
||||
{
|
||||
Valign = Align.Start;
|
||||
TimerDemo.Create(this);
|
||||
}
|
||||
}
|
||||
|
||||
static class TimerDemo
|
||||
{
|
||||
public static void Create(Box box)
|
||||
{
|
||||
List<uint> timers = new List<uint>();
|
||||
bool removeByHandler = false;
|
||||
|
||||
var btnAddTimer = new Button() { Label = "Add timer" };
|
||||
btnAddTimer.Clicked += delegate
|
||||
{
|
||||
uint id = 0;
|
||||
id = GLib.Timeout.Add(500, () =>
|
||||
{
|
||||
ApplicationOutput.WriteLine("Timer tick " + id);
|
||||
|
||||
if (removeByHandler)
|
||||
{
|
||||
removeByHandler = false;
|
||||
timers.Remove(id);
|
||||
ApplicationOutput.WriteLine("Remove timer from handler " + id);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
});
|
||||
|
||||
timers.Add(id);
|
||||
ApplicationOutput.WriteLine("Add timer " + id);
|
||||
};
|
||||
|
||||
var btnRemoveTimer = new Button() { Label = "Remove timer" };
|
||||
btnRemoveTimer.Clicked += delegate
|
||||
{
|
||||
if (timers.Count == 0)
|
||||
return;
|
||||
|
||||
uint id = timers[0];
|
||||
timers.RemoveAt(0);
|
||||
GLib.Timeout.Remove(id);
|
||||
ApplicationOutput.WriteLine("Remove timer " + id);
|
||||
};
|
||||
|
||||
var btnRemoveTimerByHandler = new Button() { Label = "Remove timer by handler" };
|
||||
btnRemoveTimerByHandler.Clicked += delegate
|
||||
{
|
||||
if (timers.Count == 0)
|
||||
return;
|
||||
|
||||
removeByHandler = true;
|
||||
ApplicationOutput.WriteLine("Remove timer by handler");
|
||||
};
|
||||
|
||||
var btnGc = new Button() { Label = "GC" };
|
||||
btnGc.Clicked += delegate
|
||||
{
|
||||
ApplicationOutput.WriteLine("GC");
|
||||
GC.Collect();
|
||||
GC.WaitForPendingFinalizers();
|
||||
GC.Collect();
|
||||
};
|
||||
|
||||
box.PackStart(btnAddTimer, false, false, 0);
|
||||
box.PackStart(btnRemoveTimer, false, false, 0);
|
||||
box.PackStart(btnRemoveTimerByHandler, false, false, 0);
|
||||
box.PackStart(btnGc, false, false, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user