我正在寻找一个能让我读取文件的功能,比如在端口上侦听。一旦找到一个Line,它就会调用一个方法(带回调)。而那是在一个单独的过程中。 我正在使用:
BeginRecieveFrom(socket.bytes, 0, BufferSize, SocketFlags.None, ref endpoint, new AsyncCallback(RecieveFromCallback), state);
我一直在搜索,但找不到任何东西。
答案 0 :(得分:0)
UsernamePasswordAuthenticationFilter
班级支持Stream
以下是一个示例:(读取二进制)
BeginRead()
// This class will keep reading until all requested byte are read.
public static class FileReader
{
public static void ReadBytes(Stream stream, byte[] buffer, int offset, int count, Action complete)
{
stream.BeginRead(buffer, offset, count, (asyncResult) =>
{
var bytesRead = stream.EndRead(asyncResult);
offset += bytesRead;
count -= bytesRead;
if (count == 0)
complete();
else
ReadBytes(stream, buffer, offset, count, complete);
}, null);
}
}
这将读取,直到[count]个字节被重新加载。这是一个示例 ..
答案 1 :(得分:0)
当然,您可以异步读取文件,因为它是一个IO操作。
我认为您所寻找的内容类似于以下内容,但请注意,此示例使用新的async / await异步模式。
let GetGroup2 s =
let pattern = @"(d+)(.+)(d+)"
let m : Match = Regex.Match(s, pattern)
// this generates a warning :
match m.Success with
| true ->
if (m.Groups.Count >= 3) then (string)m.Groups.[2] |> Some else None
| false -> None