23 lines
628 B
C#
23 lines
628 B
C#
using System.Collections.Concurrent;
|
|
|
|
namespace LMEMappeCatastaliApp.Services;
|
|
|
|
public sealed class IncomingFileService
|
|
{
|
|
private readonly ConcurrentQueue<IncomingFile> _files = new();
|
|
|
|
public static IncomingFileService Shared { get; } = new();
|
|
|
|
public event Action? FileAvailable;
|
|
|
|
public void Enqueue(IncomingFile file)
|
|
{
|
|
_files.Enqueue(file);
|
|
MainThread.BeginInvokeOnMainThread(() => FileAvailable?.Invoke());
|
|
}
|
|
|
|
public bool TryDequeue(out IncomingFile? file) => _files.TryDequeue(out file);
|
|
}
|
|
|
|
public sealed record IncomingFile(string Path, string FileName, string? ContentType);
|