void Init() { NSAutoreleasePool pool = new NSAutoreleasePool(); _callback = new CoreServices.FSEventStreamCallback(OnFsEvent); var pathptrs = new List <IntPtr>(); foreach (string path in _paths) { pathptrs.Add(CoreFoundation.CFSTR(new StringBuilder(path))); } _stream = CoreServices.FSEventStreamCreate(IntPtr.Zero, _callback, IntPtr.Zero, CoreFoundation.CFArrayCreate(pathptrs.ToArray()), CoreServices.kFSEventStreamEventIdSinceNow, 1.0, CoreServices.kFSEventStreamCreateFlagWatchRoot); CoreServices.FSEventStreamScheduleWithRunLoop(_stream, RunLoopHelper.GetRunLoop(), CoreFoundation.kCFRunLoopDefaultMode); CoreServices.FSEventStreamStart(_stream); //CoreServices.FSEventStreamShow(_stream); pool.Dispose(); }