def apply(self, coro_function, args=None, kwargs=None, callback=None):
        """Submit a coro_function(*args, **kwargs) as NewTask to self.loop with loop.frequncy control.

        ::

            from torequests.dummy import Loop
            import asyncio
            loop = Loop()

            async def test(i):
                result = await asyncio.sleep(1)
                return (loop.frequency, i)

            task = loop.apply(test, [1])
            print(task)
            # loop.x can be ignore
            loop.x
            print(task.x)

            # <NewTask pending coro=<new_coro_func() running at torequests/torequests/dummy.py:154>>
            # (Frequency(sem=<0/0>, interval=0, name=loop_sem), 1)
        """
        args = args or ()
        kwargs = kwargs or {}
        coro = self._wrap_coro_function_with_sem(coro_function)(*args, **kwargs)
        return self.submit(coro, callback=callback)