都是毛伊岛移动应用程序开发的新手.我正在创建一款扫描附近WiFi网络的应用程序,如果它找到了特定的网络,它必须执行一些操作.我希望这个应用程序即使在后台也能工作,继续更新找到的网络列表并运行我创建的方法.

如何做到这一点呢?

推荐答案

如果您的目的不是在扫描网络时阻止用户界面,您只需使用async/await即可.请考虑下面的简化代码示例:

class WifiNetworkViewModel : ViewModelBase
{
    public WifiNetworkViewModel()
    {
        Networks = new ObservableCollection<WifiNetwork>();
    }

    public ObservableCollection<WifiNetwork> Networks { get; }

    public async Task ScanWifiNetworks()
    {
        while (true)
        {
            // Scanning logic here (use await)
            // When found one, add it to the Networks collection
            Networks.Add(new WifiNetwork { Name = "Wifi Network 1" });
            // Break the while loop with timeout etc.
        }
    }
}

class WifiNetwork
{
    public string Name { get; set; }
}

要使用此视图模型,我假设您有一个列表控件,如ListView,并将其绑定到Networks属性,如

<ListView ItemsSource="{Binding Networks}"/>

当找到的网络添加到Networks属性时,ListView将自动填充.例如,要开始扫描,请从Button调用ScanWifiNetworks()方法.

Csharp相关问答推荐

List T.AddRange在传递ConcurrentDictionary作为参数时引发ArgumentExcellent

如何使用Automapper映射两个嵌套列表

如何在Visual Studio中为C# spread操作符设置格式规则?

什么是通过反射创建类的泛型接口方法的正确方法?

为什么在ANTLR4中会出现不匹配的输入错误?""

图形API基于appid列表检索多个应用程序

AsNoTrackingWithIdentitySolutions()似乎不起作用?

Blazor Foreach仅渲染最后一种 colored颜色

发布用于Linux Ubuntu的C#应用程序

使用Orleans进行的单元测试找不到接口的实现

如果设置了另一个属性,则Newtonsoft JSON忽略属性

在.NET 7.0 API控制器项目中通过继承和显式调用基类使用依赖项注入

.NET 8 DI GetServices<;对象&>不工作

多个参数的最小API删除

具有嵌套属性的IGGroup

DropDownListFor未显示选定值

如果所有";async任务方法()";调用都返回Task.FromResult()-是否同步执行?

Excel将';@';添加到具有范围的公式中

如何在C#中抽象Vector256;T<;的逻辑以支持不同的硬件配置?

从具有泛型类型约束的类继承-Blazor