projects
/
platform
/
core
/
uifw
/
dali-toolkit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge "Add DALI_IMPORT_API in SetCustomAlgorithm API" into devel/master
[platform/core/uifw/dali-toolkit.git]
/
plugins
/
dali-swig
/
manual
/
csharp
/
DisposeQueue.cs
diff --git
a/plugins/dali-swig/manual/csharp/DisposeQueue.cs
b/plugins/dali-swig/manual/csharp/DisposeQueue.cs
index
a62843b
..
35acafd
100644
(file)
--- a/
plugins/dali-swig/manual/csharp/DisposeQueue.cs
+++ b/
plugins/dali-swig/manual/csharp/DisposeQueue.cs
@@
-12,19
+12,16
@@
using System.Collections.Generic;
namespace Dali
{
namespace Dali
{
-
public class DisposeQueue
{
public class DisposeQueue
{
- private static DisposeQueue _disposableQueue = new DisposeQueue();
+ private static
readonly
DisposeQueue _disposableQueue = new DisposeQueue();
private List<IDisposable> _disposables = new List<IDisposable>();
private Object _listLock = new object();
private List<IDisposable> _disposables = new List<IDisposable>();
private Object _listLock = new object();
- private
delegate int ProcessDisposablesDelegate(IntPtr ptr)
;
- private
ProcessDisposablesDelegate _disposeq
ueueProcessDisposablesDelegate;
+ private
EventThreadCallback _eventThreadCallback
;
+ private
EventThreadCallback.CallbackDelegate _disposeQ
ueueProcessDisposablesDelegate;
private DisposeQueue()
{
private DisposeQueue()
{
- _disposequeueProcessDisposablesDelegate = new ProcessDisposablesDelegate(ProcessDisposables);
- Application.Instance.AddIdle(_disposequeueProcessDisposablesDelegate);
}
~DisposeQueue()
}
~DisposeQueue()
@@
-36,17
+33,25
@@
namespace Dali
get { return _disposableQueue; }
}
get { return _disposableQueue; }
}
+ public void Initialize()
+ {
+ _disposeQueueProcessDisposablesDelegate = new EventThreadCallback.CallbackDelegate(ProcessDisposables);
+ _eventThreadCallback = new EventThreadCallback(_disposeQueueProcessDisposablesDelegate);
+ }
+
public void Add(IDisposable disposable)
{
public void Add(IDisposable disposable)
{
- lock(_listLock)
+ lock
(_listLock)
{
_disposables.Add(disposable);
}
{
_disposables.Add(disposable);
}
+
+ _eventThreadCallback.Trigger();
}
}
- private
int ProcessDisposables(IntPtr ptr
)
+ private
void ProcessDisposables(
)
{
{
- lock(_listLock)
+ lock
(_listLock)
{
foreach (IDisposable disposable in _disposables)
{
{
foreach (IDisposable disposable in _disposables)
{
@@
-54,7
+59,6
@@
namespace Dali
}
_disposables.Clear();
}
}
_disposables.Clear();
}
- return 0;
}
}
}
}
}
}